跳转到内容

一補數:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
Cewbot留言 | 贡献
去除重複的轉換規則: 去除與公共轉換組重複的轉換規則 (1): 存在於轉換組 IT: zh-cn:反码;zh-hk:一補碼;zh-tw:一補數 (本次機械人作業已完成45.3%)
 
(未显示7个用户的18个中间版本)
第1行: 第1行:
{{Expert needed|subject=计算机科学|time=2022-02-05T14:21:11+00:00}}
{{about|台湾地区的用法|大陆地区的反码|反码}}
{{NoteTA
{{unreferenced|time=2013-01-10T04:00:22+00:00}}
|G1 = IT
将[[二进制]]数每個數字反转,得到的数即为原二进制的 一補數(ones' complement)。若某一位为0,则使其变为1,反之亦然。
}}
{{各地中文名
|cn = 反码、一的补码
|tw = 一補數
|hk = 一補碼
}}
{|class="wikitable sortable floatright" style="margin-left: 1.5em;"
|+8位数值的原码与反码进行计算<br />转换为十进制所得真值比较
! 原码
! 将符号位作为有<br />实际含义的位所得值
! 用反码表示<br />所得值
|-
| 0111 1111
|align="right"| 127 
|align="right"| 127 
|-
| 0111 1110
|align="right"| 126 
|align="right"| 126 
|-
| 0000 0010
|align="right"| 2 
|align="right"| 2 
|-
| 0000 0001
|align="right"| 1 
|align="right"| 1 
|-
| 0000&nbsp;0000
|align="right"| 0 
|align="right"| 0 
|-
| 1111 1111
|align="right"| 255 
|align="right"| −0 
|-
| 1111 1110
|align="right"| 254 
|align="right"| −1 
|-
| 1111 1101
|align="right"| 253 
|align="right"| −2 
|-
| 1000 0001
|align="right"| 129 
|align="right"| −126 
|-
| 1000 0000
|align="right"| 128 
|align="right"| −127 
|-
|}
二进制数的'''反码'''({{lang-en|'''1's complement'''}})是指将[[二进制]]数每個數字反转得到的数:若某一位为0,则使其变为1,反之亦然。<ref>{{cite book|author=M Morris Mano; Michael D Ciletti|title=''Digital design : with an introduction to the verilog hdl''|year=2013|publisher=[[培生教育]]|isbn=9780273764526|pages=第27頁}}</ref>
<!--
也就是说,若<math>X_i=1</math>,则反码为<math>\overline{X_i}=0</math>;若<math>X_i=0</math>,则反码<math>\overline{X_i}=1</math>。数值上面的一横表示反码的意思。<ref>{{Cite web |url=http://210.44.176.183/jsjxy/jsjzcyl/%E6%95%99%E5%AD%A6%E8%AF%BE%E4%BB%B6/Chap02/2.1.2.htm |title=《计算机组成原理》网络课程 |access-date=2018-11-08 |archive-url=https://web.archive.org/web/20181108105426/http://210.44.176.183/jsjxy/jsjzcyl/%E6%95%99%E5%AD%A6%E8%AF%BE%E4%BB%B6/Chap02/2.1.2.htm |archive-date=2018-11-08 |dead-url=yes }}</ref> -->

'''反码表示法'''({{lang-en|'''1's complement system'''}})是一种在[[电子计算机|计算机]]中用[[机器码]]表示[[有符号数]]的方式之一,其中正数使用[[原码]],负数使用反码。该表示法常简称'''反码'''。


補數有符號位元的二進位數。
* 一補數有符號位元的二進位數定義{{clarify}}
* 一補數是有符號位元的二進位數。{{clarify}}
正數和0的補數就是該數字本身。
* 正數和0的補數就是該數字本身。


補數 在很多算术运算中的表现与这个数的[[相反数]]很相似,此特性可使加法电路同时可以运算减法。然而,由于 補數 中存在多余的[[负零]]和其它问题,此方式并未像[[二補數]]一样被广泛应用。
一補數在很多算术运算中的表现与这个数的[[相反数]]很相似,此特性可使加法电路同时可以运算减法。然而,由于一補數中存在多余的[[负零]]和其它问题,此方式并未像[[二補數]]一样被广泛应用。


== 表示方式 ==
== 表示方式 ==
使用反码表示有符号数的方法如下
例如,+3是0011,用一補碼表示-3便是1100。
:<math>
[N] =
\begin{cases}
N, & N \ge 0 \\
2^n-1-|N|, & N<0
\end{cases}
</math>
式中,''N''为真值,''n''为编码的位数。

显然,正数的反码等于其原码,而负数的反码则可以通过保留其符号位,将原码的数值位取反得到。

例如,使用4个二进制位时,+3是0011,用一補碼表示-3便是1100。下表列出了4-bit二進數所能表示的整數。


下表列出了4-bit二進數所能表示的整數。
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
! 二進位 數 !! 無 符號位元 !! 有 符號位元 !! 為 一補碼 時
! 二進位數 !! 無符號位元 !! 有符號位元 !! 為一補碼 !! 為二補碼
|-
|-
| 0000 || 0 || 0 || 0
| 0000 || 0 || 0 || 0 || 0
|-
|-
| 0001 || 1 || 1 || 1
| 0001 || 1 || 1 || 1 || 1
|-
|-
| 0010 || 2 || 2 || 2
| 0010 || 2 || 2 || 2 || 2
|-
|-
| 0011 || 3 || 3 || 3
| 0011 || 3 || 3 || 3 || 3
|-
|-
| 0100 || 4 || 4 || 4
| 0100 || 4 || 4 || 4 || 4
|-
|-
| 0101 || 5 || 5 || 5
| 0101 || 5 || 5 || 5 || 5
|-
|-
| 0110 || 6 || 6 || 6
| 0110 || 6 || 6 || 6 || 6
|-
|-
| 0111 || 7 || 7 || 7
| 0111 || 7 || 7 || 7 || 7
|-
|-
| 1000 || 8 || -0 || -7
| 1000 || 8 || -0 || -7 || -8
|-
|-
| 1001 || 9 || -1 || -6
| 1001 || 9 || -1 || -6 || -7
|-
|-
| 1010 || 10 || -2 || -5
| 1010 || 10 || -2 || -5 || -6
|-
|-
| 1011 || 11 || -3 || -4
| 1011 || 11 || -3 || -4 || -5
|-
|-
| 1100 || 12 || -4 || -3
| 1100 || 12 || -4 || -3 || -4
|-
|-
| 1101 || 13 || -5 || -2
| 1101 || 13 || -5 || -2 || -3
|-
|-
| 1110 || 14 || -6 || -1
| 1110 || 14 || -6 || -1 || -2
|-
|-
| 1111 || 15 || -7 || -0
| 1111 || 15 || -7 || -0 || -1
|}
|}


第54行: 第124行:
* [[二進制]]
* [[二進制]]


== 參考資料 ==
[[Category:计算机科学]]
<references />

[[Category:计算机算术]]
[[Category:二进制算术]]
[[Category:電腦術語]]
[[Category:電腦術語]]
[[Category:電腦架構]]
[[Category:電腦架構]]

2024年1月15日 (一) 08:50的最新版本

「一補數」的各地常用名稱
中国大陸反码、一的补码
臺灣一補數
港澳一補碼
8位数值的原码与反码进行计算
转换为十进制所得真值比较
原码 将符号位作为有
实际含义的位所得值
用反码表示
所得值
0111 1111 127  127 
0111 1110 126  126 
0000 0010 2  2 
0000 0001 1  1 
0000 0000 0  0 
1111 1111 255  −0 
1111 1110 254  −1 
1111 1101 253  −2 
1000 0001 129  −126 
1000 0000 128  −127 

二进制数的反码(英語:1's complement)是指将二进制数每個數字反转得到的数:若某一位为0,则使其变为1,反之亦然。[1]

反码表示法(英語:1's complement system)是一种在计算机中用机器码表示有符号数的方式之一,其中正数使用原码,负数使用反码。该表示法常简称反码

  • 一補數以有符號位元的二進位數定義。[需要解释]
  • 一補數是有符號位元的二進位數。[需要解释]
  • 正數和0的一補數就是該數字本身。

一補數在很多算术运算中的表现与这个数的相反数很相似,此特性可使加法电路同时可以运算减法。然而,由于一補數中存在多余的负零和其它问题,此方式并未像二補數一样被广泛应用。

表示方式

[编辑]

使用反码表示有符号数的方法如下

式中,N为真值,n为编码的位数。

显然,正数的反码等于其原码,而负数的反码则可以通过保留其符号位,将原码的数值位取反得到。

例如,使用4个二进制位时,+3是0011,用一補碼表示-3便是1100。下表列出了4-bit二進數所能表示的整數。

二進位數 無符號位元 有符號位元 為一補碼時 為二補碼時
0000 0 0 0 0
0001 1 1 1 1
0010 2 2 2 2
0011 3 3 3 3
0100 4 4 4 4
0101 5 5 5 5
0110 6 6 6 6
0111 7 7 7 7
1000 8 -0 -7 -8
1001 9 -1 -6 -7
1010 10 -2 -5 -6
1011 11 -3 -4 -5
1100 12 -4 -3 -4
1101 13 -5 -2 -3
1110 14 -6 -1 -2
1111 15 -7 -0 -1

相关条目

[编辑]

參考資料

[编辑]
  1. ^ M Morris Mano; Michael D Ciletti. Digital design : with an introduction to the verilog hdl. 培生教育. 2013: 第27頁. ISBN 9780273764526.