C#基础 进制转换6/17
二进制→十进制:
计算公式:a*20+b*21+c*22+…+m*2(n-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*16(n-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为所得的二进制数