为什么char类型最小值为-128?

博客探讨了char类型最小值为何为-128,通过补码的概念解释了-1至-128的二进制表示,指出-128的补码为10000000。同时提到了strlen与sizeof的区别,strlen计算字符串长度到遇到''为止,而sizeof则返回变量所占内存大小。
摘要由CSDN通过智能技术生成

  [-1]补码 = 11111111 ?

   -1 取绝对值 1

    1 原码00000001

    1 反码11111110

   补码为反码+111111111

    符号位置为111111111 <—— -1的补码           

 依次类推,[-2]补码 = 11111110 [-3]补码 = 11111101 ... [-128]补码 = 10000000,

  故char型最小值为-128。

int main()
{
char a[1000];
int i;
for(i=0; i<1000; i++)
{
a[i] = -1-i;
}
printf("%d",strlen(a));
return 0;
}

此题看上去真的很简单,但是却鲜有人答对。答案是255。别惊讶,我们先分析分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值