什么是有偏见的符号?

Job*_*obs -1 c terminology definition notation

我读过:"就像一个unsigned int,但是o ff设置为 - (2 ^(n-1) - 1),其中n是数字中的位数.旁边:从技术上讲,我们可以选择任何偏好,但是这里提出的选择非常普遍." - http://inst.eecs.berkeley.edu/~cs61c/sp14/disc/00/Disc0.pdf

但是,我不明白这一点.有人可以用例子向我解释这个吗?另外,我什么时候应该使用它,给出其他选项,如一个人的赞美,签名和杂志,以及两个人的赞美?

Pot*_*ter 7

偏向表示法是一种存储一系列不以零开头的值的方法.

简而言之,您采用从零到N的现有表示,然后向每个数字添加偏差B,使其现在从B变为N + B.

  • 浮点指数以偏差存储,以保持"居中"类型的动态范围为1.
  • 超过三种编码是使用三的偏差来简化十进制算术的技术.
  • 可以将二进制补码表示法视为偏置符号,INT_MIN并且最重要的位翻转.


Ira*_*ter 6

"表示"是一种对信息进行编码的方式,以便从编码信息中提取细节或推断.

大多数现代CPU使用"二进制补码表示法"表示"数字".他们这样做是因为很容易设计数字电路,可以快速对这些值进行算术运算(加,减,乘,除......).二进制补码还具有很好的特性,可以将最高有效位解释为二次幂(给出"无符号数")或作为符号位(给出有符号数),而基本上不改变用于实现的任何硬件算术.

较旧的机器使用其他基础,例如,在60年代非常常见的是将数字表示为插入4位可寻址半字节的二进制编码十进制数字集的机器(IBM 1620和1401就是这样的例子).因此,您可以用不同的方式表示相同的概念或价值.

一个偏置只是意味着你选择(的数字)的任何表示,已经将一个恒定的偏置到该值.据推测,这样做可以使某些事情更有效地完成.我不能说" - (2 ^(n-1) - 1)"是"非常普遍的(偏见)"; 我做了大量的汇编和C编码,并且发现不需要"偏置"值.

但是,有一个常见的例子.现代CPU主要实现IEEE浮点,它存储带符号,指数,尾数的浮点数.指数是2的幂,在零附近对称,但如果我没记错的话,偏差为2 ^(N-1),对于N位指数.

通过使用标准机器二进制补码指令而不是特殊浮点指令,这种偏差允许使用相同符号的浮点值进行比较等于/小于/更大,这意味着有时可以避免使用实际浮点比较.(有关暗角的详细信息,请参阅http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm).[感谢@PotatoSwatter在这里注意到我的初步答案的不准确性,并让我去挖掘它.]