2.7 进制间的转换
2.7.1 进制的概述
二进制:0~1 以0b开头 bitset<8>输出
八进制:0~7 以0开头 0123 oct输出
十进制:0~9 123 cout默认输出十进制
十六进制:0~9 a~f以0x开头 0x12 hex输出 不区分正负数
n进制:0~n-1
2.7.2 十进制转二进制、八进制、十六进制(短除法)
进制 | n被转换的数
进制 |商………………………………………余数
进制 |商…………………………………余数 从下往上看余数
进制 |商…………………………余数
商到0结束
案例1:123转成二进制 0b0111 1011
案例2:123转成八进制 0173
案例3:123转成十六进制 0x7b
2.7.3 二进制、八进制、十六进制转十进制(位次幂)
将n进制数xyz转换成十进制
2位 1位 0位
x y z
xn^2 + yn^2 + z*n^0
案例1:将二进制数1100 0011转换成十进制
1* 2^7 + 1* 2^6 + 1* 2^1 + 1* 2^0 = 195
案例2:将0123转换成十进制 ---->83
案例3:将0x12转换成十进制 ---->18
2.7.4 二进制转八进制
从右往左:每3位二进制对应1位八进制
1101 1010 ----> 0332
11 011 010
3 3 2
2.7.5 二进制转十六进制
从右往左:每4位二进制对应1位十六进制
1101 1010---->0xda
1101 1010
d a
2.7.6 八进制转二进制
1位八进制对应3位二进制
0123—>001 010 011
2.7.7 十六进制 转 二进制
1位十六进制对应4位二进制
0x1d3c—>0001 1101 0011 1100
2.7.8 八进制 转 十六进制(没有直接方式)
八进制----->二进制------->十六进制
2.7.9 十六进制 转 八进制(没有直接方式)
十六进制---->二进制---->八进制
案例:0x123---->(八进制)0443
注意:不同的进制仅仅是数据的不同表现形式而已