问:
1. 数据类型有哪五大类?
2. 数据类型的作用是什么与什么?
3. 整型又可以具体分为哪五个?为什么字符char也归属于整型?
4. 浮点型又可以具体分为哪两类?
5. 构造类型就是什么?具体分为哪四类?
6. 数组的类型是怎么样的(举个例子)?随着什么与什么变化会怎么样?
7. 二进制下原码反码补码只针对什么而言?以3和-3为例,说明二进制下原码反码补码是什么?
8. 二进制下原码反码补码的转换是怎么样的?
9. 对于什么?原码是能够等于什么?因此什么与什么时要转为什么?但是原码的缺陷是什么?而什么却怎么样?因此什么要用什么?故什么里面都是什么?
10. unsigned修饰的话什么不会发生变化?但什么发生变化?具体变化是什么?
11. %d是打印什么?%u是打印什么?如果原先数据怎么样?那就先根据什么怎么样?然后再根据什么怎么样?
12. 代码里面的整数就看成什么?这时候往往会有什么发生?
13. 整型数据类型在内存中的存储注意大概描述一下?
14. 有符号的char的数值范围是多少?无符号的char的数值范围是多少?之所以超不出这个范围归功于什么?
15. 在内存中,是以什么为基本单位?什么等于什么等于什么?
16. 因此如果在内存中存储怎么样的数据,就要怎么样?
17. 什么的什么顺序就是什么?这就涉及到了什么?
18. 什么是大端字节序存储?什么是小端字节序存储?
19. Solve the problems: 写一个小程序判断当前机器的字节序是什么?
20. 以13.5举例子说明浮点数在内存中的存储,第一步是什么?因此13.5变为什么?
21. 第二步是什么?因此什么变为什么?
22. 第三步是什么?有关内容在内存中占用比例怎么用图像表示?其中对什么的解读是什么?
23. 第四步是什么?什么怎么样放入?为什么呢?什么怎么样放入?为什么呢?具体对于13.5来说是怎么样的?
24. 把内存中的二进制补码复原成浮点数就需要怎么样?
25. 很多浮点数不能怎么样?什么比什么怎么样?
26. E怎么样表示什么?E怎么样表示什么?
答:
1. 整型,浮点型,构造类型,指针类型,空类型。
2. 决定了申请开辟内存空间的大小和对内存里二进制补码的解读方式与视角。
3. char,short,int,long,long long,字符在电脑里存储的是它的ASCII码。
4. float,double。
5. 自定义类型,数组类型,结构体类型,枚举类型,联合类型。
6. int arr[10]的类型就是int [10],数组元素个数与类型,数组类型也发生变化。
7. 整数,.......
8. 原码符号位不变按位取反就是反码,反码+1就是补码,补码符号位不变按位取反再+1也变成原码。
9. 客观数值,客观数值,求值与打印,原码,连最简单的加法都算不对,补码,能够算对,运算,补码,计算机内存,补码。
10. 内存中二进制补码,计算机的解读,最高位不是符号位而是数据位了。
11. 有符号的整数,无符号的整数,长度小于整型,原先类型的有无符号,整型提升,d还是u,解读整型提升后的二进制补码。
12. 32位的二进制补码,截断。
13.
14. -128~127,0~255,截断。
15. 字节,一个字节,4个二进制位,2个十六进制位。
16. 长度超出一个字节,把数据肢解成多个字节。
17. 各个肢解部分,排列,字节序,大小端字节序存储。
18. 数据的低位放在内存的高地址处,数据的低位放在内存的低地址处。
19.
int main()
{
int a = 1;
char* pa = (char*)&a;
if (*pa)
printf("小端\n");
else
printf("大端\n");
return 0;
}
20. 利用二进制权重转化为二进制浮点数,1101.1。
21. 把二进制浮点数转化为二进制科学计数法表示,1101.1,(-1)^0*1.1011*2^3。
22. 找到SME并理清SEM在内存中的占用比例,
,E,无符号的。
23. 在内存中放入SME,E,加上127/1023在放入,因为内存中对E的解读是无符号的但实际上这个E可能是负数,M,最开头的1不保存,节省一位有效数字精度更高,0 10000010 10110000000.......。
24. 按照放入规则逆过来。
25. 无精度损失完美保存下来,double,float,精度更高。
26. 全为0,无穷小,全为1,无穷大。