#include <stdio.h> void main() { char c=256; int a=c; printf("%d...
发布网友
发布时间:2024-10-23 13:52
我来回答
共3个回答
热心网友
时间:2024-11-04 22:24
char只有1个字节(BYTE),也就是8个位(bit)
您的char c=256;256用二进制表示的话是100000000,也就是低8位全部为0。而char类型的c只能保存8bit的数据(也就是低8位)所以实际上c=0。
同理,255的二进制表达方式为11111111,因为char类型是有符号的类型(其对应的无符号类型为unsigned char),所以其最高位为符号位,符号位为0时时正数,为1是负数。而取值方法使用“补码"。
至于补码的详细信息,请参考
相信看完之后您就理解了。
热心网友
时间:2024-11-04 22:20
char c的取值范围是-127到127。所以当c=256时,溢出了。256的16进制为100,高位1溢出,所以,输出为0
当c为255时,16进制是ff,根据补码,就是-1。所以输出为-1
热心网友
时间:2024-11-04 22:23
数学题算一算就知道,我只给方法
把整型值赋给字符型,字符型拿到的是整型的低8位(二进制)。
%d表示输出为十进制有符号整数,如何换算参考补码表示