Day47--二进制转化为10进制
- 对于正整数(无符号数或正数)
- 二进制转十进制的方法是按权展开相加。
- 例如,有一个二进制数(1011),从右往左每一位对应的权值分别是(2{0})、(2)、(2{2})、(2\cdots)
- 那么将(1011)转换为十进制的计算过程如下:
- (1\times2{0}+1\times2+0\times2{2}+1\times2)
- (=1\times1 + 1\times2+0\times4+1\times8)
- (=1 + 2+0 + 8)
- (=11)
- 对于有符号数(以8位二进制的补码形式为例)
- 如果最高位(最左边的位)是(0),则表示正数,按照上述正整数的方法转换即可。
- 如果最高位是(1),表示负数,需要先对除符号位外的其他位取反,然后加(1),得到的结果就是其绝对值对应的二进制数,再按照正整数方法转换后加上负号。
- 例如,对于二进制数(10000000)(8位)
- 它是负数,先对除符号位外的(0000000)取反得到(1111111),再加(1)得到(10000000),其对应的十进制绝对值是(128),所以(10000000)表示(- 128)。
- 再如,对于二进制数(1101)(4位)
- 它是负数,先对(101)取反得到(010),再加(1)得到(011),(011)转换为十进制是(3),所以(1101)表示(- 3)。
posted @
2025-01-01 20:37
1hahahahahahahaha
阅读(
234)
评论()
收藏
举报