欢迎光临
箫启灵个人站点

【C语言,反汇编】整数,浮点数存储区别。

C中,整数在汇编中的存储:

有符号数跟无符号数的区别

1、存储没有区别。

2、赋值没有区别

1、扩展的时候有区别  数据宽度小的类型扩展到数据宽度高的类型,会判断有符号数符号位例如 int =char时

2、比较的时候有区别   无符号数的判断会有很大的区别 补码做判断

总结:

所有的整数一定可以完整转换成2进制。

C中,浮点型在汇编中是怎么存储的,为什么会有精度丢失的问题:

QQ截图20180531155717.png

QQ截图20180531155748.png

总结:

用二进制描述小数,不可能做到完全精确。

就好比用10进制来表示1/3也不可能完全精确是一个道理

浮点类型的精度

float和double的精度是由尾数的位数来决定的:

float:2^23 = 8388608,一共7位,这意味着最多能有7位有效数字;

double:2^52 = 4503599627370496,一共16位,这意味着最多能有16位有效数字;

分享到:更多 ()

刺蝴蝶De箫启灵

作死购站点VIP视频站站点