首页 | 主题 | 图库 | 问答 | 文摘 | 原创 | 百科

历史 | 地理 | 人物 | 艺术 | 体育 | 科学 | 音乐 | 电影 | 信息技术 | 世界遗产

 开放、中立,源自维基百科

个人工具


用搜狗搜索相关网站  Google Search

有符號數處理

维库,知识与思想的自由文库

跳转到: 导航, 搜索

在日常生活,負數可在最前方加上負號「-」來表示。然而電腦為了計算上的方便,要以其他系統來表示有符號的整數。下面介紹的方法都是基於二進制的。

這些用來表示負整數的方法,最高位元都為符號位(sign bit),正數用一般二進制方法表示,正數的最高位元都是0。

[编辑] 二進制補碼

又叫二的補碼(two's complement),是現時電腦系統內最常用來表示正負整數的方法。

設n為字長。若a為正整數,將a和-a的二進制補碼加起,結果必為0(00...0)。

因此,電腦最大能表示2n − 1 − 1,最小能表示 − 2n − 1

例如3位二進制補碼:

二進制補碼 十位數
  011        3
  010        2
  001        1
  000        0
  111       -1
  110       -2
  101       -3
  100       -4

這套系統對電腦的優勢可考慮下面的例子:在4位二進制補碼系統,計算3 (0011)加 -1 (1111)。表面上,答案是10010,但摒除了最左方多出的第5位元後,便得到正確的0010。

[编辑] 二進制反碼

又叫一的補碼(one's complement)。負數是對相應的正數bitwise NOT。因此,它最大可表示2n − 1 − 1,最小只可表示 − 2n − 1 + 1。0可用00...0或11..1。

二進制反碼 十位數
  011        3
  010        2
  001        1
  000       +0
  111       -0
  110       -1
  101       -2
  100       -3

在二進制反碼進行加法運算,整個數要加1才得出正確的結果。考慮−1 (110) 加 +2 (010),結果是000,整個數再加1,答案是1 (001)。又例如-1 (110)加+3 (011),結果是001,再加1,得2 (010)。

[编辑] 符號數值表示法

英文sign-and-magnitude。負數,除去符號位,其他都和相應的正數一樣。因此,它最大可表示2n − 1 − 1,最小可表示 − 2n − 1 + 1

符號數值 十位數
  011        3
  010        2
  001        1
  000       +0
  100       -0
  101       -1
  110       -2
  111       -3
其它语言
AD Links