负数在计算机中存在形式

计算机擅长做加法运算,对于减法运算也是以加法的形式存在。比如,12-8,计算机会表达成12+(-8),那么问题就来了,(-8)是如何标示的在计算机中?

原码、反码和补码的概念

首先要明白几个概念:
原码:比如12的原码(在八位机中)是,0000 1100,(-8)的原码是,1000 1000,其中首位是符号位,0代表正数,首位1代表的是负数。

反码:正数的反码就是它本身;负数的反码是保留符号位,其他位取反。(-8)的反码就是1111 0111。

补码:补码就是在反码的基础上加1。(-8)的补码是,1111 1000.

计算机为了计算容易便把(-8)以补码的方式存储,1111 1000.

举例1:12+(-8)= 4;
0000 1100 + 1111 1000 = 0000 0100 ,又符号位是0是正数,则正数的补码和原码一致,即4

举例2: 4+(-8)= -4;
0000 0100 + 1111 1000 = 1111 1100 ,又符号位是1是负数,则负数要转化为原码才是真正的数值。注意这里补码转原码的步骤是和原码转补码是一样的。即符号位不变,其余位取反然后加1.
1111 1100的原码即 1000 0100 ,(-4).

数据存储范围

对于一个8位机,无符号数范围是 0~255;有符号数的范围是 -128~127。
127,即 0111 1111;
-128,即 1000 0000; 注意由于是有符号数,所以这里的127和-128均是以补码的形式存在。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值