CSAPP读书笔记(二)一一信息的表示和处理 发表于 2017-05-05 | 阅读次数 计算机的古怪脾气在数学上看 (x+1)2≥0(x+1)2≥0 是一定的,但是在计算机中就不一定了,比方说: 123$lldb (lldb) print (233333 + 1) * (233333 + 1)(int) $0 = -1389819292 溢出辣,就成了负数。 但是如果我们用浮点数的话,就不会出现因为溢出而变成负数的问题。 可是浮点数看起来也不是那么的可靠啊: 1234(lldb) print (1e20 + -1e20) + 3.14(double) $1 = 3.1400000000000001(lldb) print 1e20 + (-1e20 + 3.14)(double) $2 = 0 (a+b)+c=a+(b+c),简单的结合律瞬间失效 这是因为浮点数的表示方法虽然可以避免溢出(极端情况还是会),但会损失部分精度。 大端小端之前的博客有介绍到大端模式和小端模式 参考【不周山之读薄 CSAPP】壹 数据表示