C#的进制转换
1.二进制转十进制
按权展开相加法
a*2^(n-1)+...+b*2^(2)+c*2^(1)+d*2^(0)+e*2^(-1)+...+f*2(-n)
例子:
二进制1011001.11(2)转换为十进制
1*2^6+0*2^5+1*2^4+1*2^3+0*2^2+0*2^1+1*2^0+1*2^-1+1*2^-2
=64+16+8+1+0.5+0.25
=89.75
八进制、十六进制转十进制同二进制转十进制。
2.十进制转二进制
分整数部分转换与小数部分转换
(1)整数部分转换
除2取倒余法
(2)小数部分转换
乘2取整法
例子:
十进制13.75(10)转为二进制
整数部分
13/2=6 余 1
6/2=3 余 0
3/2=1 余 1
1
写作:1101
小数部分
0.75*2=1.5 整数为 1
0.5*2=1 整数为 1
写作11
13.75(10)=1101.11(2)
十进制转八进制、十六进制同十进制转二进制。
3.二进制转八进制
二进制 | 八进制 | 二进制 | 八进制 |
0 | 000 | 4 | 100 |
1 | 001 | 5 | 101 |
2 | 010 | 6 | 110 |
3 | 011 | 7 | 111 |
4.二进制转十六进制
二进制 | 十六进制 | 二进制 | 十六进制 |
0 | 0000 | 8 | 1000 |
1 | 0001 | 9 | 1001 |
2 | 0010 | A | 1010 |
3 | 0011 | B | 1011 |
4 | 0100 | C | 1100 |
5 | 0101 | D | 1101 |
6 | 0110 | E | 1110 |
7 | 0111 | F | 1111 |
5.八进制与十六进制转换
可先将八进制转换为二进制然后转换为十六进制。
整数部分由小数点往前推,小数部分由小数点往后推,位数不足的补0。