发布网友 发布时间:2024-09-02 19:31
共2个回答
热心网友 时间:2024-09-02 20:29
char类型的范围是 -128到127,对于你这里 char a=i+j; 表面上就是a = 120+200=320,由于char类型的范围原因,所以能表示的最大数只到 128,只有8位,所以这里算的320显然a是表示不了的,高位都被舍弃了。
先假设a是int型且在32位机器下,那么320的二进制表示是:
0000 0000 0000 0000 0000 0001 0100 0000
由上面分析的,这时a是char类型,而char型能表示的只有8位,第9位之后的高位全部被舍弃了。
就剩下: 0100 0000 对应的十进制就是 ,对应的字符是 '@'。
热心网友 时间:2024-09-02 20:29
@, ASCLL是对应的二进制数,一个char都对应一个二进制数。具体楼下回答很详细的!