关于c语言中类型转换的题目

short bi;
bi= 0x12345678L
bi等于多少
short a = 1000;
char b = 'A';
long c;
c = a + b;
c等于多少?
int ai;
ai = 2.56;
ai等于多少?
double x;
x = 1;
x等于多少?
请解释一下,谢谢!
尤其是第一二个题,不要只写答案了
最新回答
欧尼酱

2024-10-03 07:51:24

上面的x = 1.000000000000000 才对
补充:
首先short是短整型,所占字节数是2(表示的范围为-32768~32767)
bi是从
16进制
的长整型转换而来的,在内存中会截取后16位(0101011001111000)转化成10进制,即22136
至于第二个因为short和char都在long的表示范围内,相加即可,A的ASCII码为65,故c=1065
帕嘉音

2024-10-03 13:53:45

你要知道,c语言是一个强类型的语言,也就是说当类型不匹配的时候通常情况下不用特别说明,系统都可以自动进行转换。
比如当你把一个字符型的变量赋给一个整形时,系统会得到该字符的asc码值(数据在内存当中都以asc码的二进制形式保存),然后将该值赋给整形变量。当然,必要的时候需要你自己给出转换的方式,就是把数据转换成什么类型。
接住路过的风

2024-10-03 01:36:00

bi = 0x5678 (16进制)= 22136(10进制); 长整形到short截取后面两个字节.
c=1065; 这个应该没有悬念,直接加就可以了. 'A'的ASCII码是65.
ai=2; 因为变量类型是int, 所以浮点数转换为整数是取整, 注意,不是四舍五入.
x=1.000,后边几个0是显示位数决定的.
梦沫惜

2024-10-03 15:07:58

bi = 22136

c = 1065

ai = 2

x = 1.000000