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