话说我平时无聊就会想一些奇奇怪怪的问题,今天又突然想到了一个奇怪的问题——为啥计算机里“0”代表的是正数,“1”代表的是负数?
为此,我专门百度了下这个问题的答案 ↓↓↓↓↓↓
知心的百度回答者热心又专业地回答了我这个“正经”(没事找事)的问题
↓↓↓↓↓↓
↓↓↓↓
↓↓
↓
————————————不过……em……———————————
————————老师说的好复杂……我听不懂呀%>_<%—————
不够经过我的刻苦专研(垂死挣扎)之后,终于对这个问题有了一丢丢见解~~
首先!在解析之前需要知道两个前提!!
————————————NO.1———————————————
受硬件的约束(cpu的电路中,只有两种电信号,“1”表示通电,“0”表示断电),计算机采用二进制方式进行工作。
——————————————NO.2——————————————
计算机使用二进制,但平常工作时却通常把二进制翻译成十六进制
为啥?
因为懒和麻烦……把十六进制翻译成二进制阅读方便……
————————————————————以上———————————————————————
有了上面两个前提之后呢,我们开始幻想~~~~
幻想计算机储存数据的地方是一个水桶~~
然后就有了以下画面
↓↓
然后我们知道,数据是可以分为无符号(unsigned)类型和有符号(signed)类型的【Tip:不管是什么类型,都是为了计算方便而人为地设定出来的,计算机本身并没有任何类型,只有简单的二进制运算而已喔~】
—————————————————看清楚这是无符号的分割———————————————————
我们假设这个水桶只能储存4bit(位)的数据
辣么!!!
这些数据在水桶里就是酱子储存的!!
————————————————看清楚这是有符号的分割————————————————
然后,如果是有符号的话,就会把水桶切成一半,一边放正数,一半放负数!
辣么!!!
这些数据在水桶里就是酱子储存的!!
然后!!!密切关注边界两边的16进制数字!!
它们的二进制数是这样的!
注意到木有!!!
负数的开头最左边的一定是“1”,而正数的开头最左边的一定是“0”!
所以!
我终于用我的“歪理”,证明了0代表正数,1代表负数!
—————————————————还有还有,这里还有一些小知识—————————————————
Tip1:由于处于边界的负数“F”再向右边跨越就是正数的“0”,所以这里的“F”所代表的就是十进制的“-1”,而我们通常称之为它是“1”的补码,二进制为“1111”。类似地,“E”代表的就是十进制的“-2”,它的二进制就是正数“2”的补码—>“1110”。
Tip2:根据以上的理解,边界的负数“7”再向左跨越就是负数“8”,所以这里的“8”代表了某个数字的补码,但具体是哪个数字的补码要看这个储存单位的大小而定。
————————————————————————————————————————————————
最后还有一丢丢问题在这里~
问:为什么要假设是4位?
答:其他位也阔以,我只是为了懒和简单说明。
问:为什么要从中间分开?为什么不从其他地方分开?
答:因为这是人为设定的,然后大家都遵守了这个规定。
问:为什么左边是负,右边是正?反过来不行吗?
答:因为这是人为设定的,然后大家都遵守了这个规定。
问:为什么数据排序这么整齐?不可以是乱排的吗?
答:因为这是人为设定和图是我画的,然后大家都遵守了这个规定(奸笑)。
今天的文章负数在计算机中以什么形式表示_二进制首位是1是负数吗[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/86077.html