微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当它们的表示相同时,如何在二进制表示的 8 位内存位置区分 +128 和 -128?

如何解决当它们的表示相同时,如何在二进制表示的 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 举报,一经查实,本站将立刻删除。