关于二进制的问题

今天做了一道题
将10100110B转换为十进制
答案应该是166还是-38??
如果将1100转换为二进制呢?
答案应该是-4 还是12?

因为数据在计算机中都是以二进制表示的,编译系统对于不同类型的变量分配不同大小的存贮空间,制定不同的取值范围。比如整型在计算机中的存储用2个字节16位的存储空间,其中的最高位代表符号位的,符号位为0表示的是正数,符号位为1表示为负数,整型数据在内存中以二进制的补码存放。
以10和-10说明正数在内存中的存放形式:
十进制 10 -10
二进制原码 0000000000001010 1000000000001010
二进制反码 0000000000001010 1111111111110101
二进制补码 0000000000001010 1111111111110110
而对于这一道题目没有达到正数的存储长度,即符号位不为1的,所以化为十进制后为正数,题中的二进制标准表示为0000000010100110和0000000000001100,由此看出符号位为0,代表正数的。所以,
10100110=1×2^7+1×2^5+1×2^2+1×2^1=166
1100=1×2^3+1×2^2=12.
题中的1100如果为十进制的话转化为二进制的话为00000100 01001100不是-4也不是12。O(∩_∩)O~ 可能是你的题目写错了的把!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-27
将10100110B转换为十进制应该是166
如果将1100转换为二进制答案是01001001100不是-4也不是12,呵呵!

参考资料:http://hi.baidu.com/yjjqb11/blog/item/75bdc9b7e228adf031add1aa.html

第2个回答  2009-02-27
166
相似回答