02 bits-ints-part2 数据的运算 | CSAPP

116 阅读1分钟

Overview

数据的运算

按位运算和逻辑运算

移位运算

位扩展和位截断运算

无符号和带符号整数的加减运算

无符号和带符号整数的乘除运算

变量与常数之间的乘除运算

浮点数的加减乘除运算

整数加法

无符号:不溢出直接加,溢出减掉溢出第一位权重。

有符号:不溢出直接加,正溢出真实结果减掉溢出位权重,负溢出加上溢出第一位权重

整数乘法

无符号:溢出直接截断

有符号:溢出直接截断

有符号无符号位级运算等价

有时乘法可以用移位与加法来优化

左移:乘 2 的位移数次方

整数除法

算数右移:除以 2 的位移数次方(向下取整)

算术右移加偏置:给原数字加上 2 的位移数次方再减 1 ,最后除以 2 的位移数次方(向上取整)