int i=120;int j=200;char a=i+j; a 输出结果是什么啊?

发布网友 发布时间: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都对应一个二进制数。具体楼下回答很详细的!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com