C#中不同进制之间的转换

c#

不同进制的表示

  • 十进制,最常见的形式,直接用数字赋值即可,例如 int num=1010
  • 二进制,以0b开头,例如 int num = 0b1111110010 对应十进制的1010
  • 八进制,目前没有特定的表示法,只能用字符串表示
  • 十六进制,以0x开头,例如 int num = 0x3f2 对应十进制1010

不管以十进制的形式给变量赋值,还是以二进制或者十六进制,结果是一样的,都能进行整数的各种运算和比较,

十进制转其他进制

  • 十进制转二进制,Convert.ToString(num, 2),例如1010转二进制变成:1111110010
  • 十进制转八进制,Convert.ToString(num, 8),例如1010转八进制变成:1762
  • 十进制转十六进制,Convert.ToString(num, 16),例如1010转十六制变成:3f2

注意转换之后得到的是没有前缀的字符串。

二进制转其他进制

  • 二进制转十进制

如果声明的是整数类型,例如 int num = 0b1111110010,那么ToString() 得到的就是该整数的十进制表示, 如果声明的是字符串,例如 string strNum ="1111110010",那么需要先转换成整数Convert.ToInt32(strNum, 2),然后再ToString(),注意输入的字符串不能包含前缀"0b"。

  • 二进制转八进制或者十六进制,通常先将二进制转成十进制,然后再转成八进制或者十六进制。

八进制转其他进制

  • 八进制转十进制,由于八进制没有直接的表示法,所以一般是从字符串转,例如 string strNum="1762" 表示一个八进制的字符串,需要先转十进制Convert.ToInt32(strNum, 8),然后ToString()。

  • 八进制转二进制或者十六进制,需要先转成十进制,然后再转成对应的其他进制。

十六进制转其他进制

  • 十六进制转十进制

同二进制转十进制类似,如果声明的是整数类型,例如 int num = 0x3f2,那么ToString() 得到的就是该整数的十进制表示, 如果声明的是字符串,例如 string strNum ="3f2",那么需要先转换成整数Convert.ToInt32(strNum, 16),然后再ToString(),注意输入的字符串不能包含前缀"0x"。

  • 十六进制转二进制或者八进制,需要先转成十进制,然后再转成对应的其他进制。

Related Posts

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注