C基础第二次作业

1.char c = 128,用%d打印,结果是什么,为什么?

答:结果是-128,因为char在有符号区分的取值范围是[-128,127],计算机读取到128时会自动转化成二进制补码位1000 0000,计算反码位0111 1111,翻译位源码就是1000 0000,因为-0的源码也为1000 0000,同时-0为一个特殊的值存在,首位即是符号位又是数字位,故而读取为-128.

2.unsigned char c = -1 用%u打印,结果是什么,为什么?

答:结果是255,因为char规定为unsigned,即为无符号类型,无符号类型中,char的取值范围在[0,255],-1的源码为1000 0001,则反码为0111 1110,则补码为0111 1111换取为十进制数为255,所以结果为255.

3.char类型数据中,存储0x9c,用%d打印的值是什么,写出运行结果,补码,反码,源码,推算过程写出来?

答:源码为:1001 1100==》反码为:1110 0011==》补码为1110 0100再将补码换算成十进制为-100.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值