A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 四川男人 中级黑马   /  2014-4-10 11:02  /  1084 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一个字节是八位,区间是1000 0000~0111 1111(-128~127)。按照图灵的说法,将前面是1开头的放在0000 0000前面,就变成了负数,为什么?

5 个回复

倒序浏览
那是最高位,最高位表示符号位,整数是0,负数是1.
回复 使用道具 举报
有效位只有7位,在位移中就需要注意最高位是0还是1.
回复 使用道具 举报
负数最高位是1(负数的1是取反得到的) 移位的时候若是整数用0补充 负数用1补充
回复 使用道具 举报

  1. 0000  0                           
  2. 0001        1       
  3. 0010        2
  4. 0011        3
  5. 0100        4
  6. 0101        5       
  7. 0110        6
  8. 0111        7       
  9. 1000        8
  10. 1001        9
  11. 1010        10
  12. 1011        11
  13. 1100        12
  14. 1101        13
  15. 1110        14
  16. 1111        15
  17. 正数
  18. =======
  19. 000        -8
  20. 1001        -7
  21. 1010        -6
  22. 1011        -5
  23. 1100        -4
  24. 1101        -3
  25. 1110        -2
  26. 1111        -1
  27. 0000        0
  28. 0001        1
  29. 0010        2
  30. 0011        3
  31. 0100        4
  32. 0101        5
  33. 0110        6
  34. 0111        7
  35.   计算机中的负数使用补码的形式存在的,计算机中只有真、假两种符号,没有特别定义符号位,原因就是为了要降低硬件的成本,所以负数就只能用原码取反、加一的形式来表示。所以设计计算机的逻辑也就可以理解了。
复制代码
回复 使用道具 举报
不明白楼主的意思
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马