在单片机程序中,负数使用补码表示法:- 最左侧比特位为符号位(0表示正数,1表示负数)。- 剩余比特位表示绝对值。- 要表示负数,需将绝对值二进制化、取反,再添加符号位1。负数运算需考虑符号位,如加法时符号位相同时按正数加法,否则按补码减法。
单片机程序中负数表示
在单片机程序中,负数通常使用补码表示法。补码表示法是一种将正数和负数都统一表示为非负数的方法。
补码表示法
在补码表示法中,最左侧的比特位表示符号位,0表示正数,1表示负数。其余比特位表示数字的绝对值。对于 8 位单片机,补码表示法的范围如下:
- 正数:0000 0000 ~ 0111 1111(0 ~ 127)
- 负数:1000 0000 ~ 1111 1111(-128 ~ -1)
负数的表示
要表示一个负数,需要执行以下步骤:
- 将数字的绝对值转换成二进制。
- 对二进制结果取反(将 0 变为 1,将 1 变为 0)。
- 在最左侧添加一个符号位 1。
例如:
要表示 -5,使用补码表示法:
- 绝对值 5 的二进制表示:0000 0101
- 取反:1111 1010
- 添加符号位 1:1111 1010
因此,-5 在补码表示法中表示为 1111 1010。
负数的运算
在单片机程序中,负数的运算与正数类似,但需要考虑符号位。
- 加法:符号位相同时,按照正数加法规则执行。符号位不同时,将数字转换成补码,执行补码减法,结果再转换成原码。
- 减法:转换成补码加法执行。
- 乘法:按照正数乘法规则执行,结果的符号位由两个操作数符号位异或运算得到。
- 除法:按照正数除法规则执行,结果的符号位由分子符号位与分母符号位异或运算得到。