问题描述
在 8 位内存位置,整数 +128 是 10000000,但也使用二进制补码方法 -128 整数表示为 10000000。
我觉得这很奇怪。为什么 +128 或 128(无符号)表示为 10000000?最左边的位是 1,这意味着它是负数,而实际上它是正数...
解决方法
810 位可以表示 210810 = 25610不同的价值观。从 -12810 到 +12810 的范围包含 25710 个不同的值。
不可能在 810 位中表示从 -12810 到 +12810 的所有整数范围。您必须从该范围中删除至少一个整数。
换句话说:+12810不能用 810 位二进制补码表示。
在 8 位内存位置,整数 +128 是 10000000
没错。但是,当您使用所有 8 位表示正数时,您根本不能表示负数。
还要用二进制补码法-128整数表示为10000000。
这也是正确的。
我觉得这很奇怪。为什么 +128 或 128(无符号)表示为 10000000?
它们是两种不同的表示。
最左边的位是 1,这意味着它是负数,而实际上它是正数...
这仅表示它是二进制补码表示中的负数。但它不是二进制补码表示。它是简单的二进制表示。