反碼和補碼怎麼計算?

General 更新 2025-01-27

一個數的原碼,反碼,補碼怎麼算

數在計算機中是以二進制形式表示的。

數分為有符號數和無符號數。

原碼、反碼、補碼都是有符號定點數的表示方法。

一個有符號定點數的最高位為符號位,0是正,1是副。

以下都以8位整數為例,

原碼就是這個數本身的二進制形式。

例如

0000001 就是+1

1000001 就是-1

正數的反碼和補碼都是和原碼相同。

負數的反碼是將其原碼除符號位之外的各位求反

[-3]反=[10000011]反=11111100

負數的補碼是將其原碼除符號位之外的各位求反之後在末位再加1。

[-3]補=[10000011]補=11111101

一個數和它的補碼是可逆的。

為什麼要設立補碼呢?

第一是為了能讓計算機執行減法:

[a-b]補=a補+(-b)補

第二個原因是為了統一正0和負0

正零:00000000

負零:10000000

這兩個數其實都是0,但他們的原碼卻有不同的表示。

但是他們的補碼是一樣的,都是00000000

特別注意,如果+1之後有進位的,要一直往前進位,包括符號位!(這和反碼是不同的!)

[10000000]補

=[10000000]反+1

=11111111+1

=(1)00000000

=00000000(最高位溢出了,符號位變成了0)

有人會問

10000000這個補碼錶示的哪個數的補碼呢?

其實這是一個規定,這個數表示的是-128

所以n位補碼能表示的範圍是

-2^(n-1)到2^(n-1)-1

比n位原碼能表示的數多一個

又例:

1011

原碼:01011

反碼:01011 //正數時,反碼=原碼

補碼:01011 //正數時,補碼=原碼

-1011

原碼:11011

反碼:10100 //負數時,反碼為原碼取反

補碼:10101 //負數時,補碼為原碼取反+1

0.1101

原碼:0.1101

反碼:0.1101 //正數時,反碼=原碼

補碼:0.1101 //正數時,補碼=原碼

-0.1101

原碼:1.1101

反碼:1.0010 //負數時,反碼為原碼取反

補碼:1.0011 //負數時,補碼為原碼取反+1

總結:

在計算機內,定點數有3種表示法:原碼、反碼和補碼

所謂原碼就是前面所介紹的二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其餘位表示數值的大小。

反碼錶示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。

補碼錶示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。

1、原碼、反碼和補碼的表示方法

(1) 原碼:在數值前直接加一符號位的表示法。

例如: 符號位 數值位

[+7]原= 0 0000111 B

[-7]原= 1 0000111 B

注意:a. 數0的原碼有兩種形式:

[+0]原=00000000B [-0]原=10000000B

b. 8位二進制原碼的表示範圍:-127~+127

2)反碼:

正數:正數的反碼與原碼相同。

負數:負數的反碼,符號位為“1”,數值部分按位取反。

例如: 符號位 數值位

[+7]反= 0 0000111 B

[-7]反= 1 1111000 B

注意:a. 數0的反碼也有兩種形式,即

[+0]反=00000000B

[- 0]反=11111......

補碼.原碼.反碼怎麼運算的啊.詳細一點

數在計算機中是以二進制形式表示的。

數分為有符號數和無符號數。

原碼、反碼、補碼都是有符號定點數的表示方法。

一個有符號定點數的最高位為符號位,0是正,1是副。

以下都以8位整數為例,

原碼就是這個數本身的二進制形式。

例如

0000001 就是+1

1000001 就是-1

正數的反碼和補碼都是和原碼相同。

負數的反碼是將其原碼除符號位之外的各位求反

[-3]反=[10000011]反=11111100

負數的補碼是將其原碼除符號位之外的各位求反之後在末位再加1。

[-3]補=[10000011]補=11111101

一個數和它的補碼是可逆的。

為什麼要設立補碼呢?

第一是為了能讓計算機執行減法:

[a-b]補=a補+(-b)補

第二個原因是為了統一正0和負0

正零:00000000

負零:10000000

這兩個數其實都是0,但他們的原碼卻有不同的表示。

但是他們的補碼是一樣的,都是00000000

特別注意,如果+1之後有進位的,要一直往前進位,包括符號位!(這和反碼是不同的!)

[10000000]補

=[10000000]反+1

=11111111+1

=(1)00000000

=00000000(最高位溢出了,符號位變成了0)

有人會問

10000000這個補碼錶示的哪個數的補碼呢?

其實這是一個規定,這個數表示的是-128

所以n位補碼能表示的範圍是

-2^(n-1)到2^(n-1)-1

比n位原碼能表示的數多一個

又例:

1011

原碼:01011

反碼:01011 //正數時,反碼=原碼

補碼:01011 //正數時,補碼=原碼

-1011

原碼:11011

反碼:10100 //負數時,反碼為原碼取反

補碼:10101 //負數時,補碼為原碼取反+1

0.1101

原碼:0.1101

反碼:0.1101 //正數時,反碼=原碼

補碼:0.1101 //正數時,補碼=原碼

-0.1101

原碼:1.1101

反碼:1.0010 //負數時,反碼為原碼取反

補碼:1.0011 //負數時,補碼為原碼取反+1

總結:

在計算機內,定點數有3種表示法:原碼、反碼和補碼

所謂原碼就是前面所介紹的二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其餘位表示數值的大小。

反碼錶示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。

補碼錶示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。

1、原碼、反碼和補碼的表示方法

(1) 原碼:在數值前直接加一符號位的表示法。

例如: 符號位 數值位

[+7]原= 0 0000111 B

[-7]原= 1 0000111 B

注意:a. 數0的原碼有兩種形式:

[+0]原=00000000B [-0]原=10000000B

b. 8位二進制原碼的表示範圍:-127~+127

2)反碼:

正數:正數的反碼與原碼相同。

負數:負數的反碼,符號位為“1”,數值部分按位取反。

例如: 符號位 數值位

[+7]反= 0 0000111 B

[-7]反= 1 1111000 B

注意:a. 數0的反碼也有兩種形式,即

[+0]反=00000000......

計算機源碼,反碼,補碼之間怎麼計算?

換算根據他們各自的定義進行。

所謂原碼就是二進制定點表示法,即最高位為符號撫,“0”表示正,“1”表示負,其餘位表示數值的大小。

反碼錶示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。

原碼10010= 反碼11101 (10010,1為符號碼,故為負)

補碼錶示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。

例如:

(1) 原碼:在數值前直接加一符號位的表示法。

例如: 符號位 數值位

[+7]原= 0 0000111 B

[-7]原= 1 0000111 B

注意:a. 數0的原碼有兩種形式:

定點小數表示方法

[+0]原=00000000B [-0]原=10000000B

b. 8位二進制原碼的表示範圍:-127~+127

換算:

[+7]反= 0 1111000 B

[-7]反= 1 1111000 B

[+7]補= 0 0000111 B 等於 [+7]原

[-7]補= 1 1111001 B 等於 [-7]反+ 1

11010101的原碼反碼和補碼怎麼算

真值x =1101 0101

若用9位字長機器數表示 , [x]原 =[x]反 =[x]補 =0 1101 0101

若用16位字長機器數表示 , [x]原 =[x]反 =[x]補 =0000 0000 1101 0101

( 正數的原碼反碼補碼相同 , 最高位是符號位,0表示正數 )

C語言中,原碼,補碼和反碼怎麼換算?

數在計算機中是以二進制形式表示的。

數分為有符號數和無符號數。

原碼、反碼、補碼都是有符號定點數的表示方法。

一個有符號定點數的最高位為符號位,0是正,1是副。

以下都以8位整數為例,

原碼就是這個數本身的二進制形式。

例如

1000001 就是-1

0000001 就是+1

正數的反碼和補碼都是和原碼相同。

負數的反碼是將其原碼除符號位之外的各位求反

[-3]反=[10000011]礌=11111100

負數的補碼是將其原碼除符號位之外的各位求反之後在末位再加1。

[-3]補=[10000011]補=11111101

一個數和它的補碼是可逆的。

為什麼要設立補碼呢?

第一是為了能讓計算機執行減法:

[a-b]補=a補+(-b)補

第二個原因是為了統一正0和負0

正零:00000000

負零:10000000

這兩個數其實都是0,但他們的原碼卻有不同的表示。

但是他們的補碼是一樣的,都是00000000

特別注意,如果+1之後有進位的,要一直往前進位,包括符號位!(這和反碼是不同的!)

[10000000]補

=[10000000]反+1

=11111111+1

=(1)00000000

=00000000(最高位溢出了,符號位變成了0)

有人會問

10000000這個補碼錶示的哪個數的補碼呢?

其實這是一個規定,這個數表示的是-128

所以n位補碼能表示的範圍是

-2^(n-1)到2^(n-1)-1

比n位原碼能表示的數多一個

反碼補碼怎麼求

正整數的原碼反碼補碼是一樣的。對負數來說,例如101,第一位是它的符號位,表示負數,抱持不變,後面的按它的絕對值取相反數。就是110。而負數的補碼,就是在它反碼的基礎上加1,就是110+1,那麼它的補碼就是111。總之,你記得,正數全一樣。負數求反符號位不變,其餘變成相反數就成。負數求補的過程就是先求反再加1。

怎麼計算(-18)+的原碼補碼反碼

這個看按多少位來算了,不管按多少位,首位為符號位。

如按8位:

原碼:1001 0010 (符號位為1,數值與整數原碼相同)

反碼:1110 1101 (符號位不變,數值按位取反)

補碼:1110 1110 (在反碼基礎上末位加1)

按16位:

原碼:1000 0000 0001 0010

反碼:1111 1111 1110 1101

補碼: 1111 1111 1110 1110

按32位雷同。

二進制反碼運算是怎麼計算的

第一位是符號位,負數後面是原來數據的是源碼,按照源碼按位取反對為反碼,將反碼+1得到補碼。反碼計算可以使用兩種方法,一是換回源碼對正數計算,廠後計算符號為。二是先加一變成補碼,進行算術計算後在算回來。

相關問題答案
漲停和跌停怎麼計算?
強度和剛度怎麼計算?
平年和閏年怎麼計算?
流速和粘度怎麼計算?
兩個求和符號怎麼計算?
那從租和從價怎麼計算房產稅呢? ?
反碼和補碼怎麼計算?
忘記密碼和密保怎麼辦?
補液張力怎麼計算?
反水怎麼計算?