[转载]C# 二进制与十进制,十进制与十六进制相互转换
十进制转二进制:
用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果
例如302
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
2/2 = 1 余0
用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果
例如302
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
2/2 = 1 余0
1/2=0余1
故二进制为100101110
二进制转十进制:
从最后一位开始算,依次列为第0、1、2...位 第n位的数(0或1)乘以2的n次方得到的结果相加就是答案
例如:01101011.转十进制:
第0位:1乘2的0次方=1
1乘2的1次方=2
0乘2的2次方=0
1乘2的3次方=8
0乘2的4次方=0
1乘2的5次方=32
1乘2的6次方=64
0乘2的7次方=0
然后:1+2+0
+8+0+32+64+0=107.
二进制01101011=十进制107
十进制与十六进制相互转换:
十进制与十六进制相互转换最后通过二进制作为桥梁
例如十进制65转换成十六进制
先将65转换为二进制-->1000001-->41(十六进制)
由于 1 位十六进制数对应 4 位二进制数,所以二进制数转换为十六进制时,只要以小数点为界,整数部分向左,小数部分向右每 4 位分成一组,各组用对应的 1 位十六进制数字表示,即可得到对应的十六进制数值。两端的分组不足 4 位时,用 0 补足。