您现在的位置是:首页 > 正文

负数在计算机中怎样存储

2024-01-30 20:27:16阅读 0

一、什么是原码、反码、补码?

分为:正数 和负数(包括正浮点数,和负浮点数)

规定最高位位符号位正数为0,负数为1(原因下文解释)

原码:10进制转换成2进制是原码,只不过正数的原码是本身符号位为0,负数的原码符号位为1(以下篇幅均以单字节为例:10进制1的原码是0000 0001,10进制-1的原码是1000 0001)。

反码: 正数的反码是本身,负数的反码是负数的原码0变为1,1变为0   (-1的原码是1000 0001   它的反码就是 1111 1110,)。(注意负数求反码时候的符号位不参与变换)。

补码: 正数的补码是本身,负数的反码就是负数的反码加一 (-1的原码是1000 0001   它的反码就是 1111 1110  它的补码就是 1111 1111)。

总结:正数的原码,反码 ,补码三值合一, 负数的原码,反码,补码不同。

二:为什么要设置反码,补码?

有人会有疑惑为什么要用反码,补码,不直接用原码呢?先搞清楚一点反码补码原码是针对二进制数而言,计算机若用原码相加减,正数加正数不会出错,然而正数和负数原码相加就会出错。

引进补码的作用是为了让计算机更方便做减法 

说白了,补码反码就是为了简化减法而来的,将减号化为负数 再将负数化为补码求加法 跟正数没关系 ,不管是正整数还是正小数,原码,反码,补码都全部相同。

三:Visual studio2013 查看存储;

事实证明计算机中负数是以补码存储的,也可以推广到,计算机中所有数都是以补码形式存储的。

四:剖析本质:

1.单字节无符号的正数可以存储的范围就是 0~256 二进制表示( 0000 0000~1111 1111)

2.单字节有负号的整数可以存储的范围是-128 ~127 。

先看正数二进制能表示范围(0 000 0001 ~ 0 111 1111)即1~127

 

负数二进制能能表示的范围(1 000  0001 ~ 1 111 1111)即-127~-1

所还有个0 分为+0和-0 (0000 0000 表示+0,1000 0000 表示-0 表示-128)

 

 

 

 

网站文章

  • php create_function()产生的漏洞

    create_function(‘参数’,’函数体’):官方example:

    2024-01-30 20:27:10
  • leetcode解题思路分析(一百二十三)1018 - 1024 题

    代码】leetcode解题思路分析(一百二十三)1018-1024题。

    2024-01-30 20:26:36
  • 新书推荐 |《工业机器人系统及应用》

    新书推荐 |《工业机器人系统及应用》

    新书推荐《工业机器人系统及应用》点击上图了解及购买本书由机器人领域的两位技术专家和资深教授联袂撰写,聚焦于工业机器人,涵盖其组成结构、电气控制及实践应用,为机器人的设计、生产、布置、操作...

    2024-01-30 20:26:29
  • Linux/Ubuntu下使用命令开放端口的办法

    Linux/Ubuntu下使用命令开放端口的办法

    一.安装iptables:一般情况下,Ubuntu安装好的时候,iptables会被安装上。如果没有,执行下面命令$ sudo apt-get update$ sudo apt-get install iptables二.安装完后,开放8000端口,使用下面命令:$ sudo iptables -I INPUT -p tcp --dport 8000 -j ACCEPT三.保存规...

    2024-01-30 20:26:02
  • js中两个等号(==)和三个等号(===)的区别

    1. "=="表示:equality -> 等同 的意思,"=="使用两个等号时,如果两边值的类型不同的时候,是要先先进行类型转换后,才能做比较。2. "==="表示:identity -> 恒等 的意思,"==="使用三个等号时,是不需要做类型转换的,如果两边值的类型不同,就表示一定是不等的。...

    2024-01-30 20:25:55
  • skywalking系列-nacos配置

    动态配置nacos配置 可动态配置skywalking服务端配置信息 key==Nacos DataId在开启nacos为 configuration配置中心时必须配置以下key,如果没有以下配置oa...

    2024-01-30 20:25:48
  • 微信小程序分页加载数据~上拉加载更多~小程序云数据库的分页加载

    我们在开发小程序时,一个列表里难免会有很多条数据,比如我们一个列表有1000条数据,我们一下加载出来,而不做分页,将会严重影响性能。所以这一节,我们来讲讲小程序分页加载数据的实现。老规矩,先看效果图可以看到我们每页显示10条数据,当滑动到底部时,会加载第二页的数据,再往下滑动,就加载第三页的数据。由于我们一共21条数据,所以第三页加载完以后,会有一个“已加载全部数据”的提示。本节知识点...

    2024-01-30 20:25:42
  • 计算机表格中如何计算数据透视表,Excel中如何在数据透视表中进行计算

    会计工作中离不开excel电子表格软件,它不仅具有数据输入、输出、显示、分类、统计、查询等数据处理的基本功能,还具有强大的数据分析功能与程序执行自动化功能,为会计人员的工作提供了许多便利。数据透视表是...

    2024-01-30 20:25:13
  • Maven中pom文件引入依赖标签dependency的scope属性

    依赖中引入了主要用于管理依赖关系的作用范围,目前依赖项的作用域可以使用五个值,compile、runtime、test、provided和systemcompile:依赖项的默认作用范围,即当没有指定...

    2024-01-30 20:25:07
  • Python之爬虫-- Requests

    目录Requests-献给人类一、简介二、安装方式三、 GET请求四、POST请求 五、显示json文件六、代理(proxies参数) 七、用户验证八、Cookies 和 Session1、Cookies2、Session九、SSL证书验证https请求验证ssl证书(有一些网站的ssl证书是自己写的,比如12306和360)Requests...

    2024-01-30 20:24:34