8位有符号数的范围为-128 ~ +127,为什么不是 -127 ~ 127,-127 ~ 128等等?

这是一个困惑了我几年的问题,它让我对现在的教科书和老师极其不满!

从我二三十年前开始摸电脑时,就几乎在每一本计算机基础、C语言、C++教科书上都说,8位有符号的取值范围是-128~+127,为什么不是-127~+127呢,后来的java int的聚值范围,在32位计算,-2^31 ~ +2^31-1,可是,却从来没有任何一本教科书或一个老师比我解释过这个问题。 后来在工作上或者是什么地方又没有直接遇到它,所以我也一直忽略它,但心里总是有一根刺,直到刚才,拔出来了!几经周折,终于把它搞清楚了:!

其实,-128不是规定的,它是计算机底层为了实现数值运算而决定的,涉及非常非常基础的原码,反码,补码知识,一般(99.9999%)都不会用得上. 那0.0001%,估计也就是计算机考试了

用2^8来表示无符号整数的话,全世界的理解都是0 - 255了,那么对于有符号的数值呢?

用最高位表示符号,0为+,1为-,那么,正常的理解就是 -127 至 +127 了.

这就是原码了,值得一提的是,原码的弱点,有2个0,即+0和-0,还有就是进行异号相加或同号相减时,比较笨蛋,先要判断2个数的绝对值大小,然后进行加减操作,最后运算结果的符号还要与大的符号相同.

8位有符号数的范围为-128 ~ +127 深入浅出探究相关推荐

  1. 为什么8位有符号数的范围为“-128 — +127”?(转载加补充)

    这是一个困惑了我几年的问题,它让我对现在的教科书和老师极其不满,从我N年前开始摸电脑时,就几乎在每一本C++教科书上都说,8位有符号的取值范围是-128~+127,为什么不是-127~+127呢,后来 ...

  2. 为何八位有符号整数的范围是-128~127,而不是-127~128

    八位的带符号的整数,比如JAVA中的byte,c#中的SByte,为什么值域范围都是-128-127而不是-127~128? 事实上,远古时期有些计算机的设计是采用了反码表示有符号数的,因此8位有符号 ...

  3. 汇编8位有符号数相加

    操作环境:emu8086 问题描述: 设从BUF开始存放有若干带符号字节数(8位),将它们相加并将结果(超过一个字节范围)存放到字单元SUM中 需要知道的知识: 1.8位有符号数在寄存器中是以补码形式 ...

  4. 为什么8位二进制的取值范围是-128~127

    我的疑惑 一个字节8位,其中最高位表示正数和负数,0表示正数,1表示负数.所以能够表示-128-+127. 01111111可以表示+127.正数这一段没有问题,负数这一段有两个疑问 11111111 ...

  5. 有符号数与无符号数之间运算问题探究

    文章目录 有符号数与无符号数之间运算问题 例子: 问题探究: unsigned int变量跟int类型的变量运算时得出的结果是什么类型的? 逐步思考: 代码分析: 问题总结 例:1: 例2: 无符号和 ...

  6. 为什么8位有符号数的取值范围是-128~+127

    首先我们知道,计算机以补码的形式存储的,正数的补码是原码不变,负数的补码是原码的取反加1. 我们先来看+127,原码0111 1111对吧,若+128是多少呢,0111 1111 + 1 = 1000 ...

  7. 8位有符号类型的数值范围是-128~127,why -128?

    8bit无符号数范围为:0 ~ 255,这是没有什么疑问的. 8bit有符号数范围为:-128 ~ 127 ,然而直观来看,0000 0001即为1,1000 0001即为-1,那么很容易得到8位有符 ...

  8. 理解有符号数和无符号数的区别

    理解有符号数和无符号数 回头看上一节,我们所讲的数都是正数.同样是年纪和工资,前者不需要有负值,但后者可能需要--至少所有的老板都这样认为. 那么,负数在计算机中如何表示呢? 这一点,你可能听过两种不 ...

  9. 工作日常记录:整数有符号数除以无符号数的那些事

    问题 :32位有符号数作为被除数,16位无符号数作为除数,计算结果正常,但是当32无符号数作为除数就出出现异常情况 void test( void ) {int a = -33;unsigned sh ...

最新文章

  1. mysql期中考试题及答案_MySQL练习题及答案
  2. 10.17 配置IP,网络问题排查
  3. ASP.NET Core 启动方式(Hosting)
  4. android静态方法如何测试,android – 如何使用mock()和spy()测试静态方法
  5. 【C++深度剖析教程4】C++的二阶构造模式
  6. windows10 网络热点
  7. tensorflow使用object detection实现目标检测超详细全流程(视频+图像集检测)
  8. ELK官方文档收集Kibana监视数据编辑
  9. postman rpc本地调用_什么是RPC,你知道嘛?
  10. 【Redis系列】Redis常用数据类型命令大全,6K字爆肝整理,路过不容错过
  11. 创建ORACLE定时任务 任务日志记录
  12. python26个保留字,Python保留字(关键字)一览表
  13. 微信亲戚备注分组名称_【微信分组备注名称大全】qq分组备注名称大全
  14. jpa+hibernate整合达梦数据库(附源码)
  15. 通信中的MGF(矩生成函数)
  16. 平衡二叉树(注意LR和RL)
  17. 人造肌肉——双扭绳驱动结构
  18. python上方菜单栏不见了_python tkinter-菜单栏
  19. CAD手机看图软件中如何根据已知坐标点绘制线段?
  20. 吞噬星空鸿蒙殿主,论《吞噬星空》是鸿蒙三部曲的最后一部!

热门文章

  1. SQL SERVER 使用作业自动备份及删除过往备份
  2. JQuery图书管理系统
  3. DNS服务器的搭建(反向解析)
  4. debug 服务器应用程序不可用
  5. [源码和文档分享]基于JAVA的葫芦娃 — 最终之战
  6. 【java】Java即时编译(JIT)器原理解析及实践
  7. 基于单片机的直流电机转速控制设计(电路+程序)
  8. Common Part
  9. 【微信小程序】-—下拉刷新、上拉触底事件详细讲解
  10. 黎曼与陈景润,同为素数而生,留名千古