不同进制之间数字表示方法
- 默认的数字是10进制,如:23
- 以0开头为8进制,如:045
- 以0b开头为二进制 如:0b11101101
- 以0x开头为十六进制,如:0x21458adf
10->2
正整数:
除二取余(直到商为0时止),倒序排列,高位补零。
如:45
45/2 = 22...1 = 11...0 =5...1=2...1=0...1=>101101=》00101101
负整数
正数二进,取反加一
如-45
00101101——--取反---11010010----加1--11010011
小数部份
X2取整,小数累乘再取整,直到满足位数或小数部份为0为止。
如0.45f
0.45x2 = 0.9(0---0.9)x2=1.8(1--0.8)x2=1.6(1--0.6)x2=1.2(1--0.2)x2=0.4(0--0.4)x2 = 0.8(0-0.8)...
浮点数取23位,所以0.45=》0.01110011001100110011001
2->10
整数:
将二进制补足位数,首位是0表示正数,首位是1表示负数
首位是0,则将每位数x2^n求和,其中n为从右往左的下标。
如:101101
高位补零 = 00101101 =1*2^5+ 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 32+8+4+1 = 45
首位是1,则补位取反,再套用上面公式
如:11101011
取反:-00010100 = -10100 = -(12^4+12^2) = -20
小数部份
将小数的每一位x2^-n,再求和。
如:0.1101
= 0*2^0 + 1*2^-1 + 1*2^-2 + 0*2^-3 + 1*2^-4
=0+0.5+0.25+0.0625
=0.8125
16->2
首先记住下面的对应关系
进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
十六进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
二进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
二进制转换成十六进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位,如下图
将对应的四位数转位十六进制:
需要注意的是,在向左(或向右)取四位时,取到最高位(最低位)如果无法凑足四位,就可以在小数点的最左边(或最右边)补0,进行换算
上面是二进制转十六进制,十六进制转二进制反过来就行了