當前位置:首頁 » 編程語言 » c語言二進制計算規則
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言二進制計算規則

發布時間: 2022-08-20 08:29:34

c語言中的二進制,八進制,十進制,十六進制都怎麼算……,可否舉例,謝

先講一下,二進制與十進制。
以10為例,過程如圖。

10進制轉化為二進制
10÷2=5....0(余數為0)
5÷2=2....1(余數為1)
2÷2=1....0
1÷2=0....1

然後,非常重要的一步,將余數倒序相加
即:1010

這里特地說明一下,當被除數比除數小時,余數永遠為它自己。
如:8÷10 余數為8


二進制轉化為十進制

1010
從 右 算起分別對應 :
1 2 4 8
也就是 2的1次方,2次方,3次方
第三步,小數部分怎麼計算呢
如10.1

很簡單,將0.1乘以2
在乘到整數之前,將結果的整數取出。
如:
0.1x2=0.2.....0
0.2x2=0.4.....0
0.4x2=0.8......0
0.8x2=1.6......1
正序排下來: 0001
至於八進制和十六進制,其實是一樣的方法。就是把2換成8。


順便說一下,如果你是要做開發而不是考試的話可以直接用win系統自帶的計算器,選擇「程序員」 模式可以直接得到2.8.10.16進制的所有結果。

㈡ C語言中邏輯運算符的規則是什麼

1、邏輯運算符運算規則:

||或:比如兩個條件中,只要有一個成立,則結果就成立;

&&與:比如兩個條件中,兩個同時成立,則結果成立,否則不成立;

!非,就是取反之意,如果是真,結果是假,如果是假,結果是真。

2、邏輯運算符是根據表達式的值來返回真值或是假值。其實在C語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。下為C語言邏輯運算||和&&的真值表:


㈢ C語言二進制詳解.

在數學計算中,二進制計數系統的公分母是最小的,它以2為基數。你還記得在小學或中學時所學的不同的計數系統嗎?筆者在上小學時,曾在一堂數學課中學過以6為基數的計數系統;你先數1,2,3,4,5,然後是10,11,12,13,14,15,然後是20,等等,實際上,應該先數0,1,2,3,4,5,然後是10,1l,12,13,14,15,等等。從O開始數,能比較清楚地看出每6個數字組成一組——因此6就是基數。注意,你應該從O開始一起數到比基數小1的數(因為基數是6,所以你應該從O數到5)。當你數到5後,接著應該開始數兩位數。如果你思考一下,你就會發現這與以10為基數(十進制)的計數系統是類似的——在你數到比基數小1的數(9)後,就轉到兩位數,並繼續往下數。
計算機中的計數系統以2為基數——即二進制。由於以2為基數,所以你先數O,1,然後是10,11,然後是100,101,110,111,然後是1000,1001,1010,1011,1100,1101,1110,1111,等等。與以6為基數時不同,在以2為基數時,在數到兩位數之前,只需從O數到1。
那麼,為什麼在計算機中要以2為基數呢?其原因在於計算機中使用了晶體管。晶體管使現代計算機的出現成為可能。晶體管就象電燈開關,電燈開關有「開」和「關」兩種狀態,晶體管也是如此。你可以認為「關」表示0,「開」表示1,這樣,你就可以用一個晶體管(如果你願意,也可以用一個電燈開關)來進行從。到1的計數了。僅僅使用兩個數字(O到1)還不能做任何復雜的計算,但是我們還可以繼續下去。假設有一個電燈開關控制面板,上面有4個大電燈開關,盡管每個開關只有兩種狀態,但是這些開關組合起來就會有16或2。(4個開關,每個2種狀態)種不同的狀態。這樣,你就可以用4個開關來進行從。到15的計數了,見表20.22。
表20.22 進制計數
-------------------------------------------------------
開關 十進制值 冪
-------------------------------------------------------
O O
1 1 20
10 2 21
11 3
100 4 22
101 5
110 6
111 7
1000 8 23
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15
-------------------------------------------------------
上表說明了很重要的三點:
通過把開關並排放在一起,你就可以用它們來計數了——在本例中最多可以數到15(總共16次計數);
你可以把每個開關看作是一個二進制位,就象十進制系統中的十進制位一樣;
如果每個開關都代表一個二進制位,那麼它們剛好也都代表一個2的冪(20,21,22,23,等等)。
此外,請注意,在表中出現2的冪的地方,計數結果就要增加一個二進制位。這與十進制系統是相同的,每增加一個十進制位時,這個新的十進制位也正是一個10的冪(1=100,10=101,100=102,等等)。明白了這一點後,你就可以很容易地把二進制數轉換為十進制數了,例如,二進制數10111就是(1×24)+(O×23)+(1×22)+(1×21)+(1×20),它等於十進制的(16+0+4+2+1)或23。10 1110 1011,一個大得多的二進制數,就是(1×29)+(O×28)+(1×27)+(1×26)+(1×25)+(0×24)+(1×23)+(O×22)+(1×21)+(1×20),它等於十進制的(512+0+128+64+32+0+8+0+2+1)或747。
那麼所有這些和我們有什麼關系呢?在計算機領域中,存在著位(bit),半位元組(nibble)和位元組(byte)。一個半位元組是4位,一個位元組是8位。什麼是一個位呢?它就是一個晶體管。因此,一個位元組就是8個相鄰的晶體管,就象表20.1中的4個開關一樣。記住,如果你有4個組合在一起的開關(或晶體管),你就可以數24或16,你可以把這看作是由開關組成的一個半位元組。如果一個半位元組是4個晶體管組合在一起,那麼一個位元組就是8個晶體管組合在一起。你可以用8個晶體管數到2。或256,從另一個角度看,這意味著一個位元組(含8個晶體管)可以表示256個不同的數字(從0到 255)。再深入一點,Intel 386,486和Pentium處理器被叫做32位處理器,這意味著這些Intel晶元所進行的每一次運算都是32位寬或32個晶體管寬的。32個晶體管,或32位,等價於232或4,294,967,296,即它們能表示超過40億個不同的數字。
當然,上述介紹還不能解釋計算機是如何利用這些數字產生那種神奇的計算能力的,但它至少解釋了計算機為什麼要使用以及是如何使用二進制計數系統的。

㈣ c語言中二進制 十進制 八進制 十六進制之間的換算

二進制的1101轉化成十進制

1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13
轉化成十進制要從右到左用二進制的每個數去乘以2的相應次方
不過次方要從0開始
十進制轉二進制:
用2輾轉相除至結果為1
將余數和最後的1從下向上倒序寫
就是結果
例如302
302/2
=
151
餘0
151/2
=
75
餘1
75/2
=
37
餘1
37/2
=
18
餘1
18/2
=
9
餘0
9/2
=
4
餘1
4/2
=
2
餘0
2/2
=
1
餘0
1/2
=
0
餘1
故二進制為100101110
二進制轉八進制
在把二進制數轉換為八進製表示形式時,對每三位二進制位進行分組,應該從小數點所在位置分別向左向右劃分,若整數部分倍數不是3的倍數,可以在最高位前面補若干個0;對小數部分,當其位數不是的倍數時,在最低位後補若干個0.然後從左到右把每組的八進制碼依次寫出,即得轉換結果.
你算一下就知道了啊
比如110=2^2+2+0=6
二進制轉十六進制
要將二進制轉為16進制,只需將二進制的位數由右向左每四位一個單位分隔,分的不夠的前邊補零,用四位數的二進制數來代表一個16進制。轉換表如下,括弧內為十六進制
0000(0)
0001
(1)
0010
(2)
0011
(3)
0100
(4)
0101
(5)
0110
(6)
0111
(7)
1000
(8)
1001
(9)
1010(A)
1011
(B)
1100
(C)
1101
(D)
1110
(E)
1111
(F)
例如:10101011劃分為1010
1011,根據轉換表十六進制為AB

㈤ C語言二進制

我解釋一下:
不同的編譯系統最大值不一樣,你說的是Turbo
C
2.0的編譯系統!除過前面的一個0是說明它是正數,其它15位都是用來存放數值的,這個意思就是說這個編譯系統最大的數不能超過2的15次方減1,即最大值可以表示為0111111111111111,它相當於十進制的32767,實際上使用整數往往超過32767,顯然兩個位元組也存放不下(一個位元組為8位,兩個位元組為16位),因此有的C語言編譯系統(如Visual
C++
)以四個位元組表示一個整數,即(32位),這時,它的最大值是31個(前面一位說明它是正數,所以是31位)二進制的值都是1,即2的31次方減1,約為21億,一般情況都可以滿足使用要求了。
很詳細了!希望能得到分!

㈥ C語言中2進制是什麼意思

二進制數是逢2進位的進位制,0、1是基本算符;計算機運算基礎採用二進制。電腦的基礎是二進制。在早期設計的常用的進制主要是十進制(因為我們有十個手指,所以
二進制數
十進制是比較合理的選擇,用手指可以表示十個數字,0的概念直到很久以後才出現,所以是1-10而不是0-9)。電子計算機出現以後,使用電子管來表示十種狀態過於復雜,所以所有的電子計算機中只有兩種基本的狀態,開和關。也就是說,電子管的兩種狀態決定了以電子管為基礎的電子計算機採用二進制來表示數字和數據。常用的進制還有8進制和16進制,在電腦科學中,經常會用到16進制,而十進制的使用非常少,這是因為16進制和二進制有天然的聯系:4個二進制位可以表示從0到15的數字,這剛好是1個16進制位可以表示的數據,也就是說,將二進制轉換成16進制只要每4位進行轉換就可以了。

㈦ c語言二進制數的加減運算

1、二進制加法基本指令
(1)ADD指令
格式:ADD DST,SRC
該指令把源操作數(SRC)指向的數據與目的操作數(DST)相加後,將結果放到目的操作數(DST)中,所執行的操作:(DST)ß(SRC)+(DST)
SRC和DST不能同時為存儲器操作數和段寄存器,同時SRC和DST的數據類型要匹配,要同是位元組或字。受影響的標志位有:OF,SF,ZF,AF,PF,CF。
(2)ADC指令
格式:ADC DST,SRC
所執行的操作:(DST)ß(SRC)+(DST)+CF 了解清楚進位是怎樣加的
該指令把兩個操作數(SRC和DST)相加以後,再加上進位標志CF,將結果放到目的操作數(DST)中。受影響的標志位有:OF,SF,ZF,AF,PF,CF。ADC指令多用於多精度數據相加。
2、二進制減法基本指令
(1)SUB指令
格式:SUB DST,SRC
所執行的操作:(DST)ß (DST)-(SRC)
該指令把源操作數(SRC)指向的數據與目的操作數(DST)相減後,將結果放到目的操作數(DST)中,SRC和DST不能同時為存儲器操作數和段寄存器(,同時SRC和DST的數據類型要匹配,要同是位元組或字。受影響的標志位有:OF,SF,ZF,AF,PF,CF。
(2)SBB指令
格式:SBB DST,SRC
(DST)ß (DST)-(SRC)-CF 了解清楚進位是怎樣減的
該指令把兩個操作數(SRC和DST)相減以後,再減去CF,將結果放到目的操作數(DST)中。受影響的標志位有:OF,SF,ZF,AF,PF,CF。SBB指令多用於多精度數據相加。

㈧ C語言中的二進制、十進制、十六進制各是什麼意思

計算機中常用的數的進制主要有:二進制、八進制、十六進制,學習計算機要對其有所了解。
2進制,用兩個阿拉伯數字:0、1;
8進制,用八個阿拉伯數字:0、1、2、3、4、5、6、7;
10進制,用十個阿拉伯數字:0到9;
16進制就是逢16進1,但我們只有0~9這十個數字,所以我們用A,B,C,D,E,F這五個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。

以下簡介各種進制之間的轉換方法:
一、二進制轉換十進制
例:二進制 「1101100」
1101100 ←二進制數
6543210 ←排位方法

例如二進制換算十進制的演算法:
1*26 + 1*25 + 0*24 + 1*23 + 1* 22 + 0*21 + 0*20
↑ ↑
說明:2代表進制,後面的數是次方(從右往左數,以0開始)
=64+32+0+8+4+0+0
=108

二、二進制換算八進制
例:二進制的「10110111011」
換八進制時,從右到左,三位一組,不夠補0,即成了:
010 110 111 011
然後每組中的3個數分別對應4、2、1的狀態,然後將為狀態為1的相加,如:
010 = 2
110 = 4+2 = 6
111 = 4+2+1 = 7
011 = 2+1 = 3
結果為:2673

三、二進制轉換十六進制
十六進制換二進制的方法也類似,只要每組4位,分別對應8、4、2、1就行了,如分解為:
0101 1011 1011
運算為:
0101 = 4+1 = 5
1011 = 8+2+1 = 11(由於10為A,所以11即B)
1011 = 8+2+1 = 11(由於10為A,所以11即B)
結果為:5BB

四、二進制數轉換為十進制數
二進制數第0位的權值是2的0次方,第1位的權值是2的1次方……
所以,設有一個二進制數:0110 0100,轉換為10進制為:
計算: 0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100

五、八進制數轉換為十進制數
八進制就是逢8進1。
八進制數採用 0~7這八數來表達一個數。
八進制數第0位的權值為8的0次方,第1位權值為8的1次方,第2位權值為8的2次方……
所以,設有一個八進制數:1507,轉換為十進制為:
計算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839
結果是,八進制數 1507 轉換成十進制數為 839

六、十六進制轉換十進制
例:2AF5換算成10進制
直接計算就是: 5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997
(別忘了,在上面的計算中,A表示10,而F表示15)、

現在可以看出,所有進制換算成10進制,關鍵在於各自的權值不同。
假設有人問你,十進數 1234 為什麼是 一千二百三十四?你盡可以給他這么一個算式: 1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100

十進制與二進制轉換之相互演算法
十進制轉二進制:

用2輾轉相除至結果為1

將余數和最後的1從下向上倒序寫 就是結果

例如302

302/2 = 151 餘0

151/2 = 75 餘1

75/2 = 37 餘1

37/2 = 18 餘1

18/2 = 9 餘0

9/2 = 4 餘1

4/2 = 2 餘0

2/2 = 1 餘0

故二進制為100101110

二進制轉十進制

從最後一位開始算,依次列為第0、1、2...位

第n位的數(0或1)乘以2的n次方

得到的結果相加就是答案

例如:01101011.轉十進制:

第0位:1乘2的0次方=1

1乘2的1次方=2

0乘2的2次方=0

1乘2的3次方=8

0乘2的4次方=0

1乘2的5次方=32

1乘2的6次方=64

0乘2的7次方=0

然後:1+2+0

+8+0+32+64+0=107.

二進制01101011=十進制107.

一、二進制數轉換成十進制數

由二進制數轉換成十進制數的基本做法是,把二進制數首先寫成加權系數展開式,然後按十進制加法規則求和。這種做法稱為"按權相加"法。

二、十進制數轉換為二進制數

十進制數轉換為二進制數時,由於整數和小數的轉換方法不同,所以先將十進制數的整數部分和小數部分分別轉換後,再加以合並。

1. 十進制整數轉換為二進制整數

十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為零時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。

2.十進制小數轉換為二進制小數

十進制小數轉換成二進制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。

然後把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,後取的整數作為低位有效位。

1.二進制與十進制的轉換

(1)二進制轉十進制<BR>方法:"按權展開求和"

例:

(1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10

=(8+0+2+1+0+0.25)10

=(11.25)10

(2)十進制轉二進制

· 十進制整數轉二進制數:"除以2取余,逆序輸出"

例: (89)10=(1011001)2

2 89

2 44 …… 1

2 22 …… 0

2 11 …… 0

2 5 …… 1

2 2 …… 1

2 1 …… 0

0 …… 1

· 十進制小數轉二進制數:"乘以2取整,順序輸出"

例:

(0.625)10= (0.101)2

0.625

X 2

1.25

X 2

0.5

X 2

1.0

2.八進制與二進制的轉換

例:將八進制的37.416轉換成二進制數:

37 . 4 1 6

011 111 .100 001 110

即:(37.416)8 =(11111.10000111)2

例:將二進制的10110.0011 轉換成八進制:

0 1 0 1 1 0 . 0 0 1 1 0 0

2 6 . 1 4

即:(10110.011)2 =(26.14)8

3.十六進制與二進制的轉換<BR>例:將十六進制數5DF.9 轉換成二進制:

5 D F . 9

0101 1101 1111.1001

即:(5DF.9)16 =(10111011111.1001)2

例:將二進制數1100001.111 轉換成十六進制:

0110 0001 . 1110

6 1 . E

即:(1100001.111)2 =(61.E)16