📜  C |数据类型问题7

📅  最后修改于: 2021-05-29 12:45:38             🧑  作者: Mango

假设char的大小为1个字节,并且负数以2的补码形式存储

#include
int main()
{
    char c = 125;
    c = c+10;
    printf("%d", c);
    return 0;
}

(A) 135
(B) + INF
(C) -121
(D) -8答案: (C)
说明: 125以二进制形式表示为01111101,当我们以二进制形式加10即1010时,它变为:10000111。现在,这个数字代表什么?
首先,您应该知道char只能存储-128至127的数字,因为最高有效位保留为符号位。因此10000111代表一个负数。要检查它代表哪个数字,我们找到它的2的补码,并得到01111001(十进制为121)。因此,数字10000111代表-121。
这个问题的测验