700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c++将十进制转换为二进制 小数_二进制 八进制 十六进制与转换

c++将十进制转换为二进制 小数_二进制 八进制 十六进制与转换

时间:2019-03-21 00:05:51

相关推荐

c++将十进制转换为二进制 小数_二进制 八进制 十六进制与转换

将二进制、八进制、十六进制转换为十进制

二进制、八进制和十六进制向十进制转换都是非常容易的,就是“按权相加”。

所谓“权”,也即“位权”。

例如:8546=8 * 10 ^ 3 + 5 * 10 ^ 2 + 4 * 10 ^ 1 + 6 * 10^ 0=8000+500+40+6

不同进制转换为十进制举例:

整数部分

1.将八进制数字 53627 转换成十进制:

53627 = 5× 8^4 + 3× 8^3 + 6×8^2 + 2×8^1 + 7×8^0 = 22423(十进制)

2.将十六进制数字 9FA8C 转换成十进制:9(15)(10)8(12)

9FA8C = 9×16^4 + 15×16^3 + 10×16^2 + 8×16^1 + 12×16^0 = 653964(十进制)

3.将二进制数字转换成十进制也是类似的道理:

11010 = 1×2^4 + 1×2^3 + 0×2^2 + 1×2^1 + 0×2^0 = 26(十进制)

小数部分

1.将八进制数字 423.5176 转换成十进制:

423.5176 = 4×8^2 + 2×8^1 + 3×8^0 + 5×8^-1 + 1×8^-2 + 7×8^-3 + 6×8^-4 = 275.65576171875(十进制)

2.将二进制数字 1010.1101 转换成十进制:

1010.1101 = 1×2^3 + 0×2^2 + 1×2^1 + 0×2^0 + 1×2^-1 + 1×2^-2 + 0×2^-3 + 1×2^-4 = 10.8125(十进制)

更多转换成十进制的例子:

二进制:1001 = 1×2^3 + 0×2^2 + 0×2^1 + 1×2^0 = 8 + 0 + 0 + 1 = 9(十进制)

二进制:101.1001 = 1×2^2 + 0×2^1 + 1×2^0 + 1×2^-1 + 0×2^-2 + 0×2^-3 + 1×2^-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625(十进制)

八进制:302 = 3×8^2 + 0×8^1 + 2×8^0 = 192 + 0 + 2 = 194(十进制)

八进制:302.46 = 3×8^2 + 0×8^1 + 2×8^0 + 4×8^-1 + 6×8^-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375(十进制)

十六进制:EA7 = 14×16^2 + 10×16^1 + 7×16^0 = 3751(十进制)

将十进制转换为二进制、八进制、十六进制

整数部分

十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。

下图演示了将十进制数字 36926 转换成八进制的过程:

其他进制照此方法求值

小数部分

十进制小数转换成 8进制小数采用“乘 8 取整,顺序排列”法。

下图演示了将十进制小数 0.930908203125 转换成八进制小数的过程:

从图中得知,十进制小数 0.930908203125 转换成八进制小数的结果为 0.7345。

转化其他进制照此方法求值

二进制整数和八进制整数之间的转换

二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:

从图中可以看出,二进制整数 1110111100 转换为八进制的结果为 1674。

八进制整数转换为二进制整数时,思路是相反的,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将八进制整数 2743 转换为二进制:

从图中可以看出,八进制整数 2743 转换为二进制的结果为 10111100011。

二进制整数和十六进制整数之间的转换

二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:

从图中可以看出,二进制整数 10 1101 0101 1100 转换为十六进制的结果为 2D5C。

十六进制整数转换为二进制整数时,思路是相反的,每一位十六进制数字转换为四位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将十六进制整数 A5D6 转换为二进制:

从图中可以看出,十六进制整数 A5D6 转换为二进制的结果为 1010 0101 1101 0110。

十进制转换二进制:表格法

如图求22.8125的值转换为二进制,先把整数和小数的值分开,把22拿到表格中比较,小于表格中的数就为0,大于表格中的数就为1,然后取差和下一个数再比较,小数部分0.8125和整数部分方法一样。

相对于整数部分除以转换值求余数取反,小数部分乘进制值取整比较这个方法更简单,图中的表格都是2的进制。

---------------------

作者:洛铭

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。