当表示相同时,如何区分二进制表示形式的 8 位内存位置中的 +128 和 -128?
How to differentiate +128 from -128 in an 8-bit memory location in binary representation when their representation is the same?
在8位内存中,整数+128表示为10000000但也用补码法-128整数表示为10000000
我觉得这很奇怪。为什么 +128 或 128(无符号)表示为 10000000?最左边的位是 1,这意味着它是负数,而实际上它是正数...
810位可以表示210810 = 25610 个不同的值。从 -12810 到 +12810 的范围包含 25710 不同的值。
不可能用8表示从-12810到+12810的整数范围10 位。您必须从该范围中删除 至少一个 整数。
换句话说:+12810 不能用810位表示补充二进制表示。
In an 8-bit memory location, the integer +128 is 10000000
没错。但是,当您使用所有 8 位来表示 正数 数字时,您根本 不能 表示负数。
but also using two's complement method -128 integer is represented as 10000000.
也对。
I find this weird. Why is +128 or 128(unsigned) represented as 10000000?
它们是两种不同的表现形式。
The leftmost bit is 1, and this means that it is negative where in fact it is positive...
仅表示它是二进制补码表示中的负数。但它不是二进制补码表示。它是简单的二进制表示。
在8位内存中,整数+128表示为10000000但也用补码法-128整数表示为10000000
我觉得这很奇怪。为什么 +128 或 128(无符号)表示为 10000000?最左边的位是 1,这意味着它是负数,而实际上它是正数...
810位可以表示210810 = 25610 个不同的值。从 -12810 到 +12810 的范围包含 25710 不同的值。
不可能用8表示从-12810到+12810的整数范围10 位。您必须从该范围中删除 至少一个 整数。
换句话说:+12810 不能用810位表示补充二进制表示。
In an 8-bit memory location, the integer +128 is 10000000
没错。但是,当您使用所有 8 位来表示 正数 数字时,您根本 不能 表示负数。
but also using two's complement method -128 integer is represented as 10000000.
也对。
I find this weird. Why is +128 or 128(unsigned) represented as 10000000?
它们是两种不同的表现形式。
The leftmost bit is 1, and this means that it is negative where in fact it is positive...
仅表示它是二进制补码表示中的负数。但它不是二进制补码表示。它是简单的二进制表示。