透过-128看原码,反码,补码(c语言中char类型)

本文详细介绍了C语言中char类型的有效取值范围为-128到127,并解释了-128的补码表示为10000000。通过示例代码展示了如何在C语言中表示-128及其对应的补码形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在c语言中char类型的取值范围是(-128-127).

1. -128的补码到底是多少?

通过将下面的对应关系写出来,就可以发现。-128的补码其实就是1000 0000。

   原码            补码         值
0111 1111   0111 1111   +127
0111 1110   0111 1110   +126
     ...          .. 补码不断-1...
0000 0000   0000 0000     0
1000 0001   1111 1111    -1
1000 0010   1111 1110    -2
1000 0011   1111 1101    -3
    ...          .. 补码不断-1...
1111 1111   1000 0001 -127
无法表达     1000 0000 -128

以上图表来源于http://www.cnblogs.com/flowerslip/p/5933833.html,如果原作者对我的引用有任何问题,可以与我沟通。

少废话,看代码

  1 #include <stdio.h>                                                          
  2 #include <string.h>
  3 #include <stdlib.h>
  4 
  5 void main(void)
  6 {
  7     char a = -128;
  8     printf("The origin number is %x\n", a);
  9 }

  运行结果:The origin number is ffffff80

可以看出其补码就是1000 0000。

对原码和补码的掌握是计算机的基石,可能很多人早就熟悉这些,我再写出来也只是想提醒自己不要好高骛远,要脚踏实地。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值