一補數:修订间差异
外观
删除的内容 添加的内容
Zhiyao1998(留言 | 贡献) |
小 去除重複的轉換規則: 去除與公共轉換組重複的轉換規則 (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 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行: | ||
* [[二進制]] |
* [[二進制]] |
||
== 參考資料 == |
|||
⚫ | |||
<references /> |
|||
⚫ | |||
[[Category:二进制算术]] |
|||
[[Category:電腦術語]] |
[[Category:電腦術語]] |
||
[[Category:電腦架構]] |
[[Category:電腦架構]] |
2024年1月15日 (一) 08:50的最新版本
此條目需要精通或熟悉计算机科学的编者参与及协助编辑。 (2022年2月5日) |
「一補數」的各地常用名稱 | |
---|---|
中国大陸 | 反码、一的补码 |
臺灣 | 一補數 |
港澳 | 一補碼 |
原码 | 将符号位作为有 实际含义的位所得值 |
用反码表示 所得值 |
---|---|---|
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)是一种在计算机中用机器码表示有符号数的方式之一,其中正数使用原码,负数使用反码。该表示法常简称反码。
一補數在很多算术运算中的表现与这个数的相反数很相似,此特性可使加法电路同时可以运算减法。然而,由于一補數中存在多余的负零和其它问题,此方式并未像二補數一样被广泛应用。
表示方式
[编辑]使用反码表示有符号数的方法如下
式中,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 |
相关条目
[编辑]參考資料
[编辑]- ^ M Morris Mano; Michael D Ciletti. Digital design : with an introduction to the verilog hdl. 培生教育. 2013: 第27頁. ISBN 9780273764526.