不同数据类型之间的赋值 字节数小的赋值给字节数大的,例char赋值给short,00001111转化为short类型,结果为00000000 00001111。字节数大的赋值给字节数小的,例01010000 00001111转化为char类型,则舍弃多余的字节得到00001111,在这里有个误区,例A类型最大能表示的值为100,现在想要将值为123的B类型转化为A类型,不能想当然的认为转换后为100。另外由于-1的char表示为1111 1111,若要将其转化为short类型,需要进行符号扩展,从而变成11111111 11111111。
(4)浮点数的二进制是如何表示的,以float为例? 数学公式为 (符号位)1.xxxx*2^(exp-127) exp为八位无符号整型,范围为-255~255 [符号位][八位无符号整型,即exp][23位表示小数(2^-x),即.xxxx]
(5)强制类型转换(简单讲讲) float j=4.0; int i=(int )&j; 此时j的各位值都不会变,而i会照搬其各位的值,当然,获得的值不是4。 float j=4.0; short i=(short )&j; 此时short类型只有2个字节,因此只将float的前两个字节的数照搬过来。 (二)C语言 (1)struct
struct exm { int a; int b; } exm sa; sa.a=1; sa.b=2; print (exm *)&(sa.b)->a