黑马程序员技术交流社区

标题: 进制转换中二进制的问题 [打印本页]

作者: 四川男人    时间: 2014-4-10 11:02
标题: 进制转换中二进制的问题
一个字节是八位,区间是1000 0000~0111 1111(-128~127)。按照图灵的说法,将前面是1开头的放在0000 0000前面,就变成了负数,为什么?
作者: 赵小豪    时间: 2014-4-10 11:11
那是最高位,最高位表示符号位,整数是0,负数是1.
作者: 赵小豪    时间: 2014-4-10 11:12
有效位只有7位,在位移中就需要注意最高位是0还是1.
作者: 東少    时间: 2014-4-10 14:33
负数最高位是1(负数的1是取反得到的) 移位的时候若是整数用0补充 负数用1补充
作者: 姜姗姗    时间: 2014-4-10 20:55

  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.   计算机中的负数使用补码的形式存在的,计算机中只有真、假两种符号,没有特别定义符号位,原因就是为了要降低硬件的成本,所以负数就只能用原码取反、加一的形式来表示。所以设计计算机的逻辑也就可以理解了。
复制代码

作者: 王春蕾    时间: 2014-4-11 16:38
不明白楼主的意思




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2