【问题标题】:Why is signed char min -128 and not -127?为什么有符号的 char min -128 而不是 -127?
【发布时间】:2020-11-12 11:27:03
【问题描述】:

内存中的单数以第一位定义符号的方式表示。我以 char 为例(也是最简单的类型),但这也涉及其他带符号的数据类型。

14 = 00001110

由于第一个数字是正数,所以第一位是 0。 最大签名字符表示如下:

127 = 01111111

简单地把第一位改成负数似乎是合理的,但是其他7位仍然只能代表127的个数(如果不考虑第一位的话)。那怎么可能存储-128呢?

【问题讨论】:

  • 限制取自 C 库,但通常是关于基础知识(信息学和所有这些东西),而不是关于语言本身
  • 你能确认你说的是什么语言吗?
  • 我没有确认吗?)我使用 C 来获得限制
  • 这能回答你的问题吗? What is “2's Complement”?

标签: c binary


【解决方案1】:

-128 将表示为 10000000看起来类似于 -0,但这是表示 0 的一种冗余方式)。

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 2023-02-14
    • 2015-03-11
    • 2015-12-27
    • 1970-01-01
    • 2016-06-03
    • 2014-06-27
    • 1970-01-01
    相关资源
    最近更新 更多