总结备忘。
十进制转二进制
方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
1 | 217/2 = 108 ---- 1 |
js转换:
1 | > parseInt("217").toString(2); |
二进制转十进制
方法为:把二进制数按权展开、相加即得十进制数。
$$ 11011001=1\times2^0+1\times2^3+1\times2^4+1\times2^6+1\times2^7=1+8+16+64+128=217 $$
js转换:
1 | > parseInt("11011001",2); |
二进制转八进制
方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。
$$ 11011001=(011)(011)(001)=(1\times2^0+1\times2^1)(t\times2^0+1\times2^1)(t\times2^0)=331 $$
js转换:
1 | > parseInt("11011001",2).toString(8); |
八进制转二进制
方法为:八进制数每个位上的数分别转换为三位二进制,顺序从右往左。
$$ 331=(3)(3)(1)=(011)(011)(001)=11011001 $$
js转换:
1 | > parseInt('331',8).toString(2); |
二进制转十六进制
方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。
$$ 11011001=(1101)(1001)=(1\times2^0+1\times2^2+1\times2^3)(1\times2^0+1\times2^3)=(13)(9)=d9 $$
js转换:
1 | > parseInt('11011001',2).toString(16); |
十六进制转二进制
方法为:十六进制数每个位上的数分别转换为四位二进制,顺序从右往左。
$$ d9=(d)(9)=(13)(9)=(1101)(1001)=11011001 $$
js转换:
1 | > parseInt('d9',16).toString(2); |
十进制转八进制
方法和十进制转二进制类似:
1 | 150/8 = 18 ---- 6 |
js转换:
1 | > parseInt(150).toString(8); |
八进制转十进制
方法:把八进制数按权展开、相加即得十进制数。
$$ 226=2\times8^2+2\times8^1+6\times8^0=128=16=6=150 $$
js转换:
1 | > parseInt('226',8); |
十进制转十六进制
方法和十进制转二进制类似:
1 | 150/16 = 9 ---- 6 |
js转换:
1 | > parseInt(150).toString(16); |
十六进制转十进制
方法:把八进制数按权展开、相加即得十进制数。
$$ 96=9\times16^1+6\times16^0=144+16=150 $$
js转换:
1 | > parseInt('96',16); |