C#基础 进制转换6/17

  二进制→十进制

计算公式:a*20+b*21+c*22+…+m*2n-1)

公式中a为二进制数右边第一位数,b为第二位数,以此类推

例:二进制1011010转换为十进制数为

0*20+1*21+0*22+1*23+1*24+0*25+1*26

=1+2+8+16+64

=91

  十进制→二进制

十进制数除以2,除至0时,从上往下写出即为二进制数

例:十进制91转换为二进制

91除以2得出的数分别为 45  22  11  5  2  1

所得余数分别为    1  1   0   1  1   0  1

将余数反方向为           1011011

  十进制→八进制

十进制数除以8,除至0时,反方向写出即为八进制数

  八进制→十进制

    

从右第N位 8 7 6 5 4 3 2 1
8(n-1) 87  86  85 84 83  82 81  80
十进制下的实际数 2097152 262144 32768 4096 512 64 8 1

  十进制→十六进制

十进制除以16,除至0时,反方向写出即为十六进制数

  十六进制→十进制

计算公式:a*160+b*161+c*162+…+m*16n-1)

以上公式中,a表示十六进制数的右边第一位的数,b表示十六进制数的右边第二位的数,c表示十六进制数的右边第三位的数,m表示十六进制数的右边第(n-1)位的数

163 162 161 160
4096 256 16 1

  二进制→八进制

对于整数,采用从右到左每三位一组,不够三位的在其左边补齐0,每组单独转换出来,即为八进制

例:(001     101     111     011)

           1          5        7         3

所以1573即为所得的八进制数

  八进制→二进制

将每位八进制由三位二进制数代替,即可完成转换

例:(1     7       3      5)

     001  111   011  101

所以,(1111011101)即为所得的二进制数 

  二进制→十六进制

由于2的4次方=16,所以依照二进制与八进制的转换方法,将二进制的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始从左向右每四位一组进行转换

例(1001       0111       0111       1001)

          9            7            7            9

所以9779为所得数的十六进制数

  十六进制→二进制

只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换

例(8           7          6           5)

    1000     0111    0110       0101

所以1000011101100101为所得的二进制数

原文地址:https://www.cnblogs.com/dreamer666/p/5594568.html