源碼和原碼
Ⅰ 原碼,反碼,補碼和移碼: 原碼:1001101,反碼,補碼,移碼各是多少
解:首位數字表示正負不做變(1為負數,0為正數)
反碼:1110010(正數反碼等於原數,題中為負數,則除首位數對應取反)
補碼:1110011(得出反碼數基礎上末位加一)
移碼:0110011(補碼符號位第一位數字取反)
反碼是數值存儲的一種,多應用於系統環境設置,如linux平台的目錄和文件的默認許可權的設置umask,就是使用反碼原理。
補碼(2's complement)是一種用二進製表示有號數的方法,也是一種將數字的正負號變號的方式。
移碼(又叫增碼)是符號位取反的補碼,一般用指數的移碼減去1來做浮點數的階碼,引入的目的是為了保證浮點數的機器零為全0。
(1)源碼和原碼擴展閱讀
補碼的設計目的是:
1.使符號位能與有效值部分一起參加運算,從而簡化運算規則.
2.使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計 所有這些轉換都是在計算機的最底層進行的,而在我們使用的匯編、C等其他高級語言中使用的都是原碼。
小數和分數的補碼:
1.十進制分數補碼可以先將分子和分母分別表示成二進制數,然後計算出二進制小數,再按下面第三步的方法將求出小數的補碼形式。
2.十進制小數的補碼也應該先將其轉換成二進制小數,再按下面第三步的方法將求出小數的補碼形式。
Ⅱ 請問原碼和源碼有什麼區別
原碼(true form)是一種計算機中對數字的二進制定點表示方法。原碼表示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:+0和-0),其餘位表示數值的大小。
源碼就是指編寫的最原始程序的代碼。運行的軟體是要經過編寫的,程序員編寫程序的過程中需要他們的"語言"。音樂家用五線譜和音符,建築師用圖紙和筆,那程序員的工作的語言就是"源碼"了。
二者區別由此可見。
Ⅲ 原碼反碼和補碼有什麼區別
關於原碼反碼補碼,您可以借本
《計算機組成原理》看看計算機中數據的表示形式。
首先更正下樓上的說法,正數的原碼反碼補碼都相同,即0011的反碼也為0011
!!切記
舉例來說:對於正數3,其二進制形式為+0011,我們把+0011成為成為真值,在計算機中用0或1表示正負號,那麼+0011在計算機中原碼可以表示為00011(第一位為符號位)。反碼補碼不變。
對於負數,反碼即按位取反,比如10011可表示-3,10011為原碼,那麼符號位不變,其餘位按位取反即反碼11100.
補碼的存在是為了簡化計算的,其符號位一起參加運算,從而對於減法可轉化為加法。補碼的實質就是mod2。比如我們的鍾表是mod12的,那麼14點鍾我們也可以說是下午2點。獲得補碼的方法是「按位取反,末位加1」那麼10011的補碼便是11101.。。。。。。。。。。
機器數即數值在計算機中的表示形式。
不知您明白了嗎?
Ⅳ 請問代碼和源代碼有什麼區別
一、指代不同
1、代碼:是程序員用開發工具所支持的語言寫出來的源文件,是一組由字元、符號或信號碼元以離散形式表示信息的明確的規則體系。
2、源代碼:指未編譯的按照一定的程序設計語言規范書寫的文本文件,是一系列人類可讀的計算機語言指令。
二、特點不同
1、代碼:原則包括唯一確定性、標准化和通用性、可擴充性與穩定性、便於識別與記憶、力求短小與格式統一以及容易修改等。
2、源代碼:最終目的是將人類可讀的文本翻譯成為計算機可以執行的二進制指令,這種過程叫做編譯,通過編譯器完成。
三、存儲方式不同
1、代碼:可以書籍或磁帶形式出現,但最為常用格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。
2、源代碼:作為軟體的特殊部分,可能被包含在一個或多個文件中。一個程序不必用同一種格式的源代碼書寫。
Ⅳ c語言:原碼,反碼 補碼
1)原碼表示
原碼表示法是機器數的一種簡單的表示法。其符號位用0表示正號,用:表示負號,數值一般用二進制形式表示。設有一數為x,則原碼表示可記作[x]原。
例如,X1=
+1010110
X2=
一1001010
其原碼記作:
[X1]原=[+1010110]原=01010110
[X2]原=[-1001010]原=11001010
在原碼表示法中,對0有兩種表示形式:
[+0]原=00000000
[-0]
原=10000000
2)補碼表示
機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有一數X,則X的補碼表示記作[X]補。
例如,[X1]=+1010110
[X2]=
一1001010
[X1]原=01010110
[X1]補=01010110
即
[X1]原=[X1]補=01010110
[X2]
原=
11001010
[X2]
補=10110101+1=10110110
機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有一數X,則X的補碼表示記作[X]補。
例如,[X1]=+1010110
[X2]=
一1001010
[X1]原=01010110
[X1]補=01010110
即
[X1]原=[X1]補=01010110
[X2]
原=
11001010
[X2]
補=10110101+1=10110110
(3)反碼表示法
機器數的反碼可由原碼得到。如果機器數是正數,則該機器數的反碼與原碼一樣;如果機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而得到的。設有一數X,則X的反碼表示記作[X]反。
例如:X1=
+1010110
X2=
一1001010
[X1]原=01010110
[X1]反=[X1]原=01010110
[X2]原=11001010
[X2]反=10110101
反碼通常作為求補過程的中間形式,即在一個負數的反碼的未位上加1,就得到了該負數的補碼。
例1.
已知[X]原=10011010,求[X]補。
分析如下:
由[X]原求[X]補的原則是:若機器數為正數,則[X]原=[X]補;若機器數為負數,則該機器數的補碼可對它的原碼(符號位除外)所有位求反,再在未位加1而得到。現給定的機器數為負數,故有[X]補=[X]原十1,即
[X]原=10011010
[X]反=11100101+1
[X]補=11100110
例2.
已知[X]補=11100110,求[X]原。
分析如下:
對於機器數為正數,則[X]原=[X]補
對於機器數為負數,則有[X]原=[[X]補]補
現給定的為負數,故有:
[X]補=11100110
[[X]補]反=10011001+1
[[X]補]補=10011010=[X]原+1
[[X]補]補=10011010=[X]原
總結一下,原碼(為負時,正時都不變)全部取反即得到反碼,反碼加
"1"就得到補碼了,就是這么簡單。
Ⅵ 十進制的原碼、補碼
十進制-67的原碼是01000011、反碼是10111100和補碼是10111101。
轉換規則:
1、負整數的原碼為二進制前面加符號位;
-67=1000011(二進制)=11000011(原碼)
2、負整數的反碼=原碼各位取反(除了符號位外);
11000011(原碼)=10111100(反碼)
3、負整數的補碼=負整數的反碼+00000001;
10111100(反碼)=10111101(補碼)
(6)源碼和原碼擴展閱讀:
已知一個數的補碼,求原碼的操作其實就是對該補碼再求補碼:
⑴如果補碼的符號位為「0」,表示是一個正數,其原碼就是補碼。
⑵如果補碼的符號位為「1」,表示是一個負數,那麼求給定的這個補碼的補碼就是要求的原碼。
例:已知一個補碼為11111001,則原碼是10000111(-7)。
因為符號位為「1」,表示是一個負數,所以該位不變,仍為「1」。
其餘七位1111001取反後為0000110;再加1,所以是10000111。
Ⅶ C語言的原碼,反碼,補碼是什麼意思
1)原碼表示
原碼表示法是機器數的一種簡單的表示法。其符號位用0表示正號,用:表示負號,數值一般用二進制形式表示。設有一數為x,則原碼表示可記作[x]原。
例如,X1= +1010110
X2= 一1001010
其原碼記作:
[X1]原=[+1010110]原=01010110
[X2]原=[-1001010]原=11001010
在原碼表示法中,對0有兩種表示形式:
[+0]原=00000000
[-0] 原=10000000
2)補碼表示
機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有一數X,則X的補碼表示記作[X]補。
例如,[X1]=+1010110
[X2]= 一1001010
[X1]原=01010110
[X1]補=01010110
即 [X1]原=[X1]補=01010110
[X2] 原= 11001010
[X2] 補=10110101+1=10110110
機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有一數X,則X的補碼表示記作[X]補。
例如,[X1]=+1010110
[X2]= 一1001010
[X1]原=01010110
[X1]補=01010110
即 [X1]原=[X1]補=01010110
[X2] 原= 11001010
[X2] 補=10110101+1=10110110
(3)反碼表示法
機器數的反碼可由原碼得到。如果機器數是正數,則該機器數的反碼與原碼一樣;如果機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而得到的。設有一數X,則X的反碼表示記作[X]反。
例如:X1= +1010110
X2= 一1001010
[X1]原=01010110
[X1]反=[X1]原=01010110
[X2]原=11001010
[X2]反=10110101
反碼通常作為求補過程的中間形式,即在一個負數的反碼的未位上加1,就得到了該負數的補碼。
例1. 已知[X]原=10011010,求[X]補。
分析如下:
由[X]原求[X]補的原則是:若機器數為正數,則[X]原=[X]補;若機器數為負數,則該機器數的補碼可對它的原碼(符號位除外)所有位求反,再在未位加1而得到。現給定的機器數為負數,故有[X]補=[X]原十1,即
[X]原=10011010
[X]反=11100101+1
[X]補=11100110
例2. 已知[X]補=11100110,求[X]原。
分析如下:
對於機器數為正數,則[X]原=[X]補
對於機器數為負數,則有[X]原=[[X]補]補
現給定的為負數,故有:
[X]補=11100110
[[X]補]反=10011001+1
[[X]補]補=10011010=[X]原+1
[[X]補]補=10011010=[X]原
總結一下,原碼(為負時,正時都不變)全部取反即得到反碼,反碼加
"1"就得到補碼了,就是這么簡單。
Ⅷ 計算機原碼是什麼
計算機原碼:是一種計算機中對數字的二進制定點表示方法。
特點:原碼表示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:+0和-0),其餘位表示數值的大小。
舉例說明應用場景:我們用8位二進製表示一個數,+11的原碼為00001011,-11的原碼就是10001011
源碼的缺點:原碼不能直接參加運算,可能會出錯。
例如:數學上,1+(-1)=0,而在二進制中原碼00000001+10000001=10000010,換算成十進制為-2。顯然出錯了
Ⅸ 什麼是一個數的原碼,反碼,補碼
基本概念
在計算機內部表示二進制數的方法稱為數值編碼,把一個數及其符號在機器中的表示加以數值化,稱為機器數。機器數所代表的數稱為數的真值。 表示一個機器數,應考慮以下三個因素:
1.機器數的范圍
字長為8位,無符號整數的最大值是(11111111)B=(255)D,此時機器數的范圍是0~255。
字長為16位,無符號整數的最大值是
(1111111111111111)B=(FFFF)H=(65535)D 此時機器數的范圍是0~65535。
2.機器數的符號
在算術運算中,數據是有正有負的,將這類數據稱為帶符號數。
為了在計算機中正確地表示帶符號數,通常規定每個字長的最高位為符號位,並用0表示正數,用1表示負數。
3.機器數中小數點的位置
在機器中,小數點的位置通常有兩種約定:
一種規定小數點的位置固定不變,這時的機器數稱為「定點數」。
另一種規定小數點的位置可以浮動,這時的機器數稱為「浮點數」。
4.原碼
正數的符號位為0,負數的符號位為1,其它位按照一般的方法來表示數的絕對值。用這樣的表示方法得到的就是數的原碼。
【例1】當機器字長為8位二進制數時:
X=+1011011 [X]原碼=01011011
Y=+1011011 [Y]原碼=11011011
[+1]原碼=00000001 [-1]原碼=10000001
[+127]原碼=01111111 [-127]原碼=11111111
原碼表示的整數范圍是:
-(2n-1-1)~+(2n-1-1),其中n為機器字長。
則:8位二進制原碼表示的整數范圍是-127~+127
16位二進制原碼表示的整數范圍是-32767~+32767
5.反碼
對於一個帶符號的數來說,正數的反碼與其原碼相同,負數的反碼為其原碼除符號位以外的各位按位取反。【例2.14】當機器字長為8位二進制數時:
X=+1011011 [X]原碼=01011011 [X]反碼=01011011
Y=-1011011 [Y]原碼=11011011 [Y]反碼=10100100
[+1]反碼=00000001 [-1]反碼=11111110
[+127]反碼=01111111 [-127]反碼=10000000
負數的反碼與負數的原碼有很大的區別,反碼通常用作求補碼過程中的中間形式。 反碼表示的整數范圍與原碼相同。
6.補碼
正數的補碼與其原碼相同,負數的補碼為其反碼在最低位加1。
【例2】(1)X=+1011011 (2) Y=-1011011
(1)根據定義有: [X]原碼=01011011 [X]補碼=01011011
(2) 根據定義有: [Y]原碼=11011011 [Y]反碼=10100100
[Y]補碼=10100101
補碼表示的整數范圍是-2n-1~+(2n-1-1),其中n為機器字長。
則:8位二進制補碼表示的整數范圍是-128~+127
16位二進制補碼表示的整數范圍是-32768~+32767
當運算結果超出這個范圍時,就不能正確表示數了,此時稱為溢出。
7.補碼與真值之間的轉換
正數補碼的真值等於補碼的本身;負數補碼轉換為其真值時,將負數補碼按位求反,末位加1,即可得到該負數補碼對應的真值的絕對值。
【例3】[X]補碼=01011001B,[X]補碼=11011001B,分別求其真值X。
(1)[X]補碼代表的數是正數,其真值:
X=+1011001B
=+(1×26+1×24+1×23+1×20)
=+(64+16+8+1)
=+(89)D
(2)[X]補碼代表的數是負數,則真值:
X=-([1011001]求反+1)B
=-(0100110+1)B
=-(0100111)B
=-(1×25+1×22+1×21+1×20)
=-(32+4+2+1)
=-(39)D
Ⅹ 計算機的原碼,反碼,補碼是怎麼回事可以舉例說明嗎
原碼、反碼和補碼是計算機中對數字二進制的三種表示方法。
1、原碼
原碼(true form)是一種計算機中對數字的二進制定點表示方法。原碼表示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:+0和-0),其餘位表示數值的大小。
例如:用8位二進製表示一個數,+11的原碼為00001011,-11的原碼就是10001011。
2、反碼
反碼是數值存儲的一種,多應用於系統環境設置,如linux平台的目錄和文件的默認許可權的設置umask,就是使用反碼原理。反碼的表示方法是:正數的反碼與其原碼相同;負數的反碼是對正數逐位取反,符號位保持為1。
例如:
[+7]反= 0 0000111 B;
[-7]反= 1 1111000 B。
3、補碼
正數:正數的補碼和原碼相同。負數:負數的補碼則是符號位為「1」。並且,這個「1」既是符號位,也是數值位。數值部分按位取反後再在末位(最低位)加1。也就是「反碼+1」。
例如:
[+7]補= 0 0000111 B;
[-7]補= 1 1111001 B。
(10)源碼和原碼擴展閱讀
原碼、反碼、補碼的轉換方法如下:
(1) 已知原碼,求補碼。
例:已知某數X的原碼為10110100B,試求X的補碼和反碼。
首先通過原碼的首位確定該數字的正負,若為正數,反碼與原碼相同,補碼比原碼在末尾加1;若為負數,求其反碼時,符號位不變,數值部分按位求反;求其補碼時,再在其反碼的末位加1。
(2)已知補碼,求原碼。
按照求負數補碼的逆過程,數值部分應是最低位減1,然後取反。但是對二進制數來說,先減1後取反和先取反後加1得到的結果是一樣的,故仍可採用取反加1的方法。