进制及其字符串之间互转——C#
本文介绍进制数转进制数,及每个进制对应的字符串
一、首先进制数转进制数(int——>int)
1.二进制数与十进制数互转:
(1)二进制数转十进制数:还没找到
(2)十进制数转二进制数:目前还没找到二进制数在c#的表示方法
2.二进制数与十六进制数互转:
(1)二进制数转十六进制数:还没找到
(2)十六进制数转二进制数:还没找到
3.十进制数与十六进制数互转:还没找到
(1)十进制数转十六进制数:还没找到
(2)十六进制数转十进制数:
int num = Convert.ToInt32(num1)//num1是十六进制数,num是十进制数
总结:数转数就是扯淡,本来他们就是同一个值,除非他们的类型不一样才体现强转的意义,比如整型转浮点型,而且c#跟本就没有二进制数的表示方法
二、字符串转字符串(string——>string)
1.二进制字符串与十进制字符串互转:
(1)二进制字符串转十进制字符串:还没找到
(2)十进制字符串转二进制字符串:目前还没找到二进制数在c#的表示方法
2.二进制字符串与十六进制字符串互转:
(1)二进制字符串转十六进制字符串:还没找到
(2)十六进制字符串转二进制字符串:还没找到
3.十进制字符串与十六进制字符串互转:
(1)十进制字符串转十六进制字符串:还没找到
(2)十六进制字符串转十进制字符串:还没找到
总结:字符串转字符串还是先字符串转数值,再转成字符串,但是我觉得有字符串格式化可以直接转
三、字符串转数值(string——>int)
1.二进制字符串转二进制数:目前还没找到二进制数在c#的表示方法
2.十进制字符串转十进制数:
string str = "110"; int num = Convert.ToInt32(str); //结果num = 110
3.十六进制字符串转十六进制数:还没找到
4.二进制与十进制互转:
(1)二进制字符串转十进制数:
string str = "110"; int num = Convert.ToInt32(str, 2); //结果num = 6
(2)十进制字符串转二进制数:目前还没找到二进制数在c#的表示方法
5.二进制与十六进制互转:
(1)二进制字符串转十六进制数:还没找到
(2)十六进制字符串转二进制数:目前还没找到二进制数在c#的表示方法
6.十进制与十六进制互转:
(1)十进制字符串转十六进制数:还没找到
(2)十六进制字符串转十进制数:
string str = "ff"; int num = Convert.ToInt32(str, 16); //结果num = 255
总结:字符串转成进制数,只有二、十、十六进制字符串转成十进制数才有效,都是使用函数Convert.ToInt32(str, a),参数str为字符串本身,a为描述字符串str的进制,可以为2、10、16,当a=10时可省略
四、数值转字符串(int——>string)
1.二进制数转二进制字符串:目前还没找到二进制数在c#的表示方法
2.十进制数转十进制字符串:
int num1 = 110; string str1 = Convert.ToString(num1); //结果str1 = “110”
3.十六进制数转十六进制字符串:
int num1 = 0xff; string str1 = Convert.ToString(num1,16); //结果str1 = “ff”
4.二进制与十进制互转:
(1)二进制数转十进制字符串:目前还没找到二进制数在c#的表示方法
(2)十进制数转二进制字符串:
int num1 = 110; string str1 = Convert.ToString(num1,2); //结果str1 = “1101110”
5.二进制与十六进制互转:
(1)二进制数转十六进制字符串:目前还没找到二进制数在c#的表示方法
(2)十六进制数转二进制字符串:
int num1 = 0xff; string str1 = Convert.ToString(num1,2); //结果str1 = “11111111”
6.十进制与十六进制互转:还没找到
(1)十进制数转十六进制字符串:
int num1 = 110; string str1 = Convert.ToString(num1,16); //结果num1 = “6e”
(2)十六进制数转十进制字符串:
int num1 = 0xff; string str1 = Convert.ToString(num1); //结果str1 = “255”
总结:除了二进制数不能描述,其他情况都可以转成功,使用函数为Convert.ToString(num,a),其中num为数值,可以为十进制数值或者十六进制数值,a为描述需要转成的字符串的形式,可以是2、10、16,当a=10时可以省略
五、强转注意数值类型的容量
byte num = 0xff; int a = Convert.ToInt16(num << 8); //强转失败,因为int16(short)取值范围是-32768~32768,而 num << 8 值为 65280,属于int32或者uint6类型