前言
在c语言中我们或多或少的会在不同内存长度的变量之间赋值,但如果对不同类型之间的转化不了解,很容易发生一些意想不到的意外。
提示:以下只研究了有符号整形之间的转换
一、较长的整形赋值给较短的整形
int a=0x12345678;
char b=a;
printf("%x\n",b);
这里用16进制格式的数据赋值给a(16进制与二进制的转化关系):
本文探讨了C语言中不同长度的整型变量间赋值的情况,包括较长的整型赋值给较短的整型会导致数据截断,以及较短的整型赋值给较长的整型时,正数补0,负数补1以保持数值关系不变。这些行为可能因系统的大端或小端存储方式而略有差异。
在c语言中我们或多或少的会在不同内存长度的变量之间赋值,但如果对不同类型之间的转化不了解,很容易发生一些意想不到的意外。
提示:以下只研究了有符号整形之间的转换
int a=0x12345678;
char b=a;
printf("%x\n",b);
这里用16进制格式的数据赋值给a(16进制与二进制的转化关系):
3485
1358
5131

被折叠的 条评论
为什么被折叠?