-0的存储在计算机中到底代表啥?
来源:互联网 发布:小型宝塔数控机床编程 编辑:程序博客网 时间:2024/05/22 17:12
我们都知道计算机的世界里面只有0和1,所有的数字在计算机中都是按照二进制存储。那么问题来了,我们咋样区分正数和负数。伟大的科学家发明了原反补码来区分。并且把最高位置0代表正数,正数的原反补码都相同;负数我们把它的最高位置1代表它是负数,负数的反码是把原数除符号位取反,求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1 。计算机中都存的补码。
现在我们举个例子:以一个8位的char类型来说,它的范围是-128~127。一开始我很奇怪,7位最大就是127,为啥会出现-128呢。思来想去,我发现在有符号数中出现了0和-0两个矛盾体。科学解释:在数的表示上产生编码映射的不唯一性,对转换后的10000000强制认定为-128。所以-0在1个字节中认定是-128。
为啥这样规定:查过很多资料看到同余定理等内容,我觉得得出的都是同一个结论:就是为了形成一个环。
上边的char类型存储127是0111 1111当它加1之后变为1000 0000,再加1变为1000 0001这是一个负数。我们在利用开始的原反补看-127在计算机中的存储原码1111 1111,反码1000 0000.补码是1000 0001。那么刚才的1000 0000加1得到1000 0001自然1000 0000就是-128。同时解决0和-0的问题。
以上内容,是自己在上一篇博客关于一位遇到的小问题,花费小半天查阅资料得到自己的一点理解。科学家们但当初是否这样猜想就不得而知。哈哈哈。。。欢迎讨论。。。
阅读全文
0 0
- -0的存储在计算机中到底代表啥?
- 变量在计算机内存储的到底是什么?
- 一个程序在计算机中到底是如何运行的?
- 一个程序在计算机中到底是如何运行的?
- 一个程序在计算机中到底是如何运行的?
- Container.DataItem中Container到底代表的是什么?
- Git 里面的 origin 到底代表啥意思?
- 浮点数在计算机内存中是如何存储的?
- C++内置类型在计算机内存中如何存储的
- 数字在计算机中是如何存储的
- 浮点数在计算机内存中是如何存储的?
- C语言中,在计算机存储本质下的赋值
- 浮点数在计算机中存储的方式
- CLASS_A A();中,A到底代表什么?
- 计算机中整数的存储
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- 浮点数在计算机中存储方式
- Zabbix搭建笔记[7]--触发器
- 【Struts2】(3)Struts2国际化、Struts2上传下载、Struts2标签使用
- IOS
- 用vue构建项目笔记6(在vue中使用vue resource)
- 为给俺的小白救星浏览器增加一个调试功能绞尽脑汁搞了2天了,终于搞出点眉目,不容易啊☺
- -0的存储在计算机中到底代表啥?
- 为什么需要项目管理软件
- springboot【23】监控管理之Actuator监控端点实践
- MongoDB学习笔记(入门)
- linux 下websocket server demo例程
- 洛谷1901 发射站
- spring boot启动过程
- windows 下一台服务器多个tomcat服务安装
- pgrouting路径分析(站点与GRID中心点最短距离)