在二进制补码表示法中,总有一个奇数输出值来补偿0 /原点值,概念上既不是正值也不是负值。为了实用主义,我们将0视为正数,并且我们将其对应物(最高位为1,其余为0)视为负值,但从概念上讲,它们都是没有符号的特殊值,因为两者都是例如,-v == v。
例如,在带符号的32位值中,此数字可能以下列其中一种形式表示:
0b10000000000000000000000000000000
0x80000000
-2147483648
我个人一直用这个奇怪的价值一段时间,我将在下面作为我自己的答案分享,并让你们都决定它是否值得,但如果已经有一个我不会感到惊讶公认的名称。
我把剩下的留给你......
编辑:在进一步的研究中,我确实发现一些网站声称“它有时被称为奇怪的数字”,但这些模糊信息始终从维基百科条目中逐字复制,以两个补码表示法为准。本身只引用了2006年的大学研究论文,该论文在指定地点无法获得,但我找到了here,其中只提到了这样的传递。维基百科也引用了一本书,但该书的用法似乎是基于维基百科条目的文本,该文章在本书编写之前就已存在。我不相信除了一位东京大学的学生以外的任何人都称其为“奇怪的数字”在实践中。
答案 0 :(得分:0)
根据具体情况,我可能会将其中性地称为 死亡值 ,或者,如果我感觉像拟人化,我称之为 死亡 即可。我认为那个单独的顶级作为各种镰刀。
我称之为有两个原因:
在作为二进制补码表示法的环上,它的对应部分为0,我们通常将其称为原点。 origin 的一个反义词是 death 。
这个特殊的价值观虽然含糊不清,但往往会让许多程序员感到困惑。它实际上是许多毫无防备算法的 death 。
在编写简洁程序集时,我倾向于将其缩写为“D”,例如,如果我的条件满足所有大于零的值,和死亡,我可能会称之为国旗“GZD”。
答案 1 :(得分:0)
我简单地称之为最小整数或最小值,因为这确实是二进制补码。
它也在C标准limits.h
(和C ++等效)标题中进行了描述,例如使用SCHAR_MIN
,INT_MIN
,LONG_MIN
等等。