二进制转换为十进制采用权相加法。
权相加法就是将二进制数每位上的数乘以权,然后相加得到的结果就是十进制数。所谓权就是整数部分是2n-1,小数部分是2n,n是数字所在的位数。
步骤:
第一步:首先把二进制数位数补齐。比如该正数为11101,但它是一个8位二进制数,补齐位数后就是00011101。
注意:正整数首位为0,负整数首位为1。
第二步:补齐数位后,将二进制数每位上的数乘以权,然后相加得到的结果就是十进制数。
例如:00011101
0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
1×24+1×23+1×22+1×20=29
因此,二进制数11101转换为十进制数29。
注意:因为任何数乘以零都为零,所以位数为零的项可以忽略。
若补齐数位的二进制数首位为0,那么该数补齐数位后即可计算;若补齐数位的二进制数首位为1,即该数为负整数时,此时该数需要取反加1再进行计算。
例如:10011101
10011101首位为1,取反为-01100010,加1为-01100011。
0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 |
27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
-(1×26+1×25+1×21+1×20)=-99
因此,二进制数10011101转换为十进制数-99。
本文固定URL:https://www.dotcpp.com/qa/34