signed型数据在计算机底层的储存

      计算机底层只认识数据0、1,其余数据都不认识,因此任何数据到计算机底层都变成0和1.这么一说  那么负数是怎样的存储的呢?

     其实计算机会把基础类型的最高位腾出来作为标志位来储存正数跟负数的。规则如下:最高位如果是1,表明是负数。最高位为0,表明是正数。这样就能理解一个32位的 signed int的表示范围为:-2的31次方~2的31次方-1;8位的char型表示范围为-2的7次方~2的7次方-1;而8位的unsigned char型表示范围为0~2的8次方-1。

   在计算机系统中,数值一律按照补码来存储,主要原因是使用补码,可以将符号位和其他位统一处理;同时减法也可按照加法来处理。另外,两个用补码表示的数相加时,如果最高位(即符号位)有进位时则进位被舍弃。正数的补码与其原码一致;负数的补码:符号位为1,其余为该数绝对值的原码按位取反,然后整个数相加1.例如 -1的补码为0xff.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值