如何解决当它们的表示相同时,如何在二进制表示的 8 位内存位置区分 +128 和 -128?
在 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,这意味着它是负数,而实际上它是正数...
这仅表示它是二进制补码表示中的负数。但它不是二进制补码表示。它是简单的二进制表示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。