Assembly 最小有符号字节?
在kip irvine的《x86处理器汇编语言》一书中,他写道 val4-SBYTE-128;最小有符号字节。 var3-SBYTE-127;最大有符号字节 我认为第一位是符号位。那么最小的字节不应该是-127吗 任何帮助都将不胜感激 In,n位字的范围是[-(2n-1),2n-1-1]。因此,对于一个8位的Assembly 最小有符号字节?,assembly,x86,Assembly,X86,在kip irvine的《x86处理器汇编语言》一书中,他写道 val4-SBYTE-128;最小有符号字节。 var3-SBYTE-127;最大有符号字节 我认为第一位是符号位。那么最小的字节不应该是-127吗 任何帮助都将不胜感激 In,n位字的范围是[-(2n-1),2n-1-1]。因此,对于一个8位的sbyte,它是[-128127] 例如,最小8位有符号值(sbyte)为10000000二进制。在2的补码中,在翻转所有位并添加一位后,x的表示形式是-x的表示形式: 10000000
sbyte
,它是[-128127]
例如,最小8位有符号值(sbyte
)为10000000二进制。在2的补码中,在翻转所有位并添加一位后,x的表示形式是-x的表示形式:
10000000 = x
01111111 + 1 = -x
010000000 = -x = 128
x = -128
这样看。在二的补码表示法中,每个位的值是其零基位置的2次方,符号位除外,符号位为负数 让我们把它说清楚。假设您有一个8位数字
abcdefgh
。每个字母a..h
对应一个位,其值可以是零或一。该位序列的整数值为:
(-128)a + 64b + 32c + 16d + 8e + 4f + 2g + h
所以最小的字节大小的整数是在
a
位置有1,在其他位置有0的整数。那是-128。最大的一个是在a
位置为0,在其他位置为1的一个。数一数,它是127。你可能在想所谓的符号/幅度表示法,符号位只是将其余的乘以-1,或者不乘以。一的补码,其中符号位的位值为-(2^(n-1)-1)
,其范围也仅为[-127..127]
,但x86和所有其他现代机器使用2的补码。