进制及其字符串之间互转——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类型

原文地址:https://www.cnblogs.com/eve612/p/14249036.html