请教二进制的问题

werrwe 2013-04-17 11:58:35
-15算不算有符号数?-15用二进制如何表示?15的二进制是1111,-15的二进制数是不是15取反+1,-(1111)+1,结果是0001,这个结果那符号位不是负数1啊?还是11111,最高位1表示负数,1111表示15,这样是-15?我学得很不好,希望高手给指点。其次假设a的二进制是负数10100110,它的十进制怎么计算?
...全文
127 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fei1710 2013-05-07
  • 打赏
  • 举报
回复
4位二进制的表示范围是7到-8好不好,怎么可能表示15
  • 打赏
  • 举报
回复
用32位的二进制来表示-15吧,的确是15取反加1,但不是取相反数来的 15的二进制为0000000000000000001111,然后取反就是0变为1,1变 为0,取反后 1111111111111111110000,再最后就是加1得到的是 1111111111111111110001
dracularking 2013-04-17
  • 打赏
  • 举报
回复
楼主给出的这个例子很好地展示出了two's complement的特性,在这种情况下,用two's complement未必就是原数的负数 比如把 1111解释为15, The two's complement of an N-bit number is defined as the complement with respect to 2^N, in other words the result of subtracting the number from 2^N. 一个N-bit数(这里是4)的two's complement未必是它十进制的负数,它应该对应 2^N-original = 16 - 15 = 1 = ~(1111) + 1 = 1 如果要成为负数,比如至少15是一个byte,也就是 00001111 = 15 ~(00001111) + 1 = 11110001 = -15
xiesisi3 2013-04-17
  • 打赏
  • 举报
回复
楼主可以搜索一下什么叫"符号位"

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧