小端模式:低有效字节在前,高有效字节在后 代表处理器:Intel 大端模式:高有效字节在前,低有效字节在后 代表处理器:IBM Power Sun
C语言允许无符号整数与有符号整数之间的转换,转换规则是:底层的位保持不变
当执行一个运算时,若两个数一个为无符号数,一个是有符号数,则C语言隐式地将有符号数强制转化为无符号数,并假设都为非负数来执行运算。
整数位扩展:无符号数在前补0,成为零扩展 有符号数采取符号位扩展
有符号数到无符号数的隐士转化可能会导致某些安全漏洞
算数右移左补符号位 逻辑右移补零
有时候需要考虑运算溢出导致的漏洞
为了避免整数乘法带来的开销,编译器一般对乘法进行优化,使用加、减、移位操作等
因为精度及舍入的影响,浮点加法并不具有结合性
int float double 数字转换时
从int转换成float 数字不会溢出,但是可能会舍入
从int 或float 转换到double 能保留精度
从float或者double 转换到int 会向零舍入 1.99舍入到1 ,-1.99舍入到-1