原码、补码说明以及char和unsigned char区别--初稿

原码、补码说明以及char和unsigned char区别

0、

原码、补码(以及反码)这些概念都是对整数而言的,即原码、补码所表示的实际数值都是整数。而对实数(即带有小数点的数值,如5.0,,5.5)而言,是没有原码、补码(以及反码)这些概念的,即实数不能用原码、补码来表示。

原码,对应表示的是整数中的正整数部分;补码,对应表示的是整数中的负整数部分。

0,无论用原码还是补码表示,其值都是为0(即其原码值为0,其补码值也为0)。

对应能表示整数的数据类型: Int 、char

对应能表示实数的数据类型: float 、double

1、

原码、补码(以及反码)这些概念都是有一个修饰条件的,即几位的原码、几位的补码。例如,8bit的原码,8bit补码,32bit的原码32bit补码

只有定下了几位,补码和补码,补码和原码间才可以(直接)进行加减乘除的运算(而不必转码再运算)

例如,8bit补码0XFF(即-1)加上8bit补码0XFF(即-1)0XFF+0XFF=0X1FE,由于所得的结果即0X1FE,CPU依旧用8bit存储空间(寄存器变量)存储,所以在该存储空间里的值为0XFE,即-2.即运算结果是正确的。

再例如,8bit补码0XFF(即-1)加上8bit原码0X01(即1)0XFF+0X01=0X100,由于所得的结果即0X1FE,CPU依旧用8bit的存储空间(寄存器变量)存储,所以在该存储空间里的值为0XFE,即-2.即运算结果是正确的。存储空间里的值为0XFE,即-2.即运算结果是正确的。

中间运算结果

还有,补码和补码,补码和原码间运算的前提是这些相互加减乘除补码和原码的位数是要一样的。

2、补码=反码+1


%x  默认输出的数据类型是int
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值