举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > c#转换16进制函数 C# 转换

c#转换16进制函数 C# 转换

2023-02-23 23:18 C#教程

c#转换16进制函数 C# 转换

c#转换16进制函数

C#中提供了一系列的函数来实现16进制和其他进制之间的转换,其中最常用的是Convert.ToString()函数。该函数可以将任意进制数字转换为16进制数字,也可以将16进制数字转换为其他进制数字。

下面是一个使用Convert.ToString()函数实现16进制和10进制之间转换的例子:

// 定义一个十进制整数
int num = 255; 
// 将十进制整数转换为十六进制字符串 
string hexStr = Convert.ToString(num, 16); 
// 输出结果 
Console.WriteLine("十六进制字符串:" + hexStr); // 输出:十六进制字符串:FF 
// 再将十六进制字符串转换回十进制整数 
int decNum = Convert.ToInt32(hexStr, 16); 
// 输出结果 
Console.WriteLine("十进制整数:" + decNum); // 输出:十进制整数:255

上面的代码中使用了Convert.ToString()函数将10进制整数255转换成了16位的FF。然后再使用Convert.ToInt32()函数将FF转换回10位的255。

此外,C#中也有一些特定的方法来实现16位和8位、2位之间的相互转化。例如可以使用BitConverter.GetBytes()方法将8位或2位的byte[]转化成16位的string。同样也可以使用BitConverter.ToInt32()方法将16位string解释成8位或2位byte[]。

C# 转换

C# 转换

转换和引用

对象引用可以是:

  • 隐式向上转换为基类引用
  • 显式地向下转换为子类引用

上传总是成功的;只有在对象正确键入时,向下转换才会成功。

向上转换

向上转换操作从子类引用创建基类引用。

例如:


Product myProduct = new Product(); 
Item a = myProduct; // Upcast 

Product DiscountProduct Item 都在上一节中定义。

在upcast之后,变量a仍然引用与变量myProduct相同的Product对象。

被引用的对象本身不被改变或转换:


Console.WriteLine (a == myProduct); // True 

虽然a和myProduct引用相同的对象,但是对该对象有更严格的视图:


Console.WriteLine (a.Name); // OK 
Console.WriteLine (a.InStoreCount); // Error: InStoreCount undefined 

最后一行生成编译时错误,因为变量a的类型为Item,即使它引用了Product类型的对象。

要到达其InStoreCount字段,我们必须将该项目下转到产品。


向下转换

向下转换操作从基类引用创建子类引用。

例如:


Product myProduct = new Product(); 
Item a = myProduct; // Upcast 

Product s = (Product)a; // Downcast 

Console.WriteLine (s.InStoreCount); 
Console.WriteLine (s == a);         // True 
Console.WriteLine (s == myProduct); // True 

与upcast一样,只有引用受影响,而不是底层对象。

向下转换需要显式转换,因为它可能在运行时失败:


DiscountProduct h = new DiscountProduct(); 
Item a = h; // Upcast always succeeds 
Product s = (Product)a; // Downcast fails: a is not a Product 

如果向下转换失败,则抛出 InvalidCastException


as运算符

as 运算符执行一个求值为null的向下转换,而不是在向下转换失败时抛出异常:


Item a = new Item(); 
Product s = a as Product; // s is null; no exception thrown 

当您要随后测试结果是否为null时,这很有用:


if (s != null) {
   Console.WriteLine (s.InStoreCount); 
}
阅读全文
以上是编程学为你收集整理的c#转换16进制函数 C# 转换全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  • c#抽象类的定义 C# 抽象类

    c#抽象类的定义 C# 抽象类

    2023-02-27 C#教程

    C#抽象类抽象类是表示抽象概念的特殊类。例如,Integer是一个具体而Number是抽象的。形状是抽象的,而圆形是具体的。一个声明为...

  • 遗嘱房产继承怎么写 C# 继承的成员

    遗嘱房产继承怎么写 C# 继承的成员

    2023-02-24 C#教程

    C#继承的成员隐藏继承的成员基类和子类可以定义相同的成员。例如:public class A {public int Counter = 1; } public class B ...

  • typeof是什么意思 C# GetType和typeof

    typeof是什么意思 C# GetType和typeof

    2023-02-23 C#教程

    C#GetType和typeofC#中的所有类型都在运行时由System.Type的实例表示。有两种基本方法来获取System.Type对象:在实例上调用Get...

  • c#tostring格式 C# ToString

    c#tostring格式 C# ToString

    2023-02-24 C#教程

    C#ToString ToString 方法返回类型实例的默认文本表示。此方法被所有内置类型覆盖。例子这里有一个使用int类型的ToString方法的...

  • c#结构体和类的区别 C# 结构体

    c#结构体和类的区别 C# 结构体

    2023-02-28 C#教程

    C#结构体struct类似于类。struct是一个值类型,而一个类是一个引用类型。 结构体不支持继承。结构体隐式地从对象派生,或者更确...

© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部