導航:首頁 > 計算方法 > 快速進制計算方法

快速進制計算方法

發布時間:2022-08-19 15:43:48

1. 如何快速的計算出計算機的幾個進制

用豎式表示:
1507換算成十進制。
第0位 7 * 80 = 7
第1位 0 * 81 = 0
第2位 5 * 82 = 320
第3位 1 * 83 = 512 +
839
同樣,我們也可以用橫式直接計算:
7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839
結果是,八進制數 1507 轉換成十進制數為 839
6.2.3 八進制數的表達方法
C,C++語言中,如何表達一個八進制數呢?如果這個數是 876,我們可以斷定它不是八進制數,因為八進制數中不可能出7以上的阿拉伯數字。但如果這個數是123、是567,或12345670,那麼它是八進制數還是10進制數,都有可能。
所以,C,C++規定,一個數如果要指明它採用八進制,必須在它前面加上一個0,如:123是十進制,但0123則表示採用八進制。這就是八進制數在C、C++中的表達方法。
由於C和C++都沒有提供二進制數的表達方法,所以,這里所學的八進制是我們學習的,CtC++語言的數值表達的第二種進製法。
現在,對於同樣一個數,比如是100,我們在代碼中可以用平常的10進製表達,例如在變數初始化時:
int a = 100;
我們也可以這樣寫:
int a = 0144; //0144是八進制的100;一個10進制數如何轉成8進制,我們後面會學到。
千萬記住,用八進製表達時,你不能少了最前的那個0。否則計算機會通通當成10進制。不過,有一個地方使用八進制數時,卻不能使用加0,那就是我們前面學的用於表達字元的「轉義符」表達法。
6.2.4 八進制數在轉義符中的使用
我們學過用一個轉義符'\'加上一個特殊字母來表示某個字元的方法,如:'\n'表示換行(line),而'\t'表示Tab字元,'\''則表示單引號。今天我們又學習了一種使用轉義符的方法:轉義符'\'後面接一個八進制數,用於表示ASCII碼等於該值的字元。
比如,查一下第5章中的ASCII碼表,我們找到問號字元(?)的ASCII值是63,那麼我們可以把它轉換為八進值:77,然後用 '\77'來表示'?'。由於是八進制,所以本應寫成 '\077',但因為C,C++規定不允許使用斜杠加10進制數來表示字元,所以這里的0可以不寫。
事實上我們很少在實際編程中非要用轉義符加八進制數來表示一個字元,所以,6.2.4小節的內容,大家僅僅了解就行。
6.2.5 十六進制數轉換成十進制數
2進制,用兩個阿拉伯數字:0、1;
8進制,用八個阿拉伯數字:0、1、2、3、4、5、6、7;
10進制,用十個阿拉伯數字:0到9;
16進制,用十六個阿拉伯數字……等等,阿拉伯人或說是印度人,只發明了10個數字啊?
16進制就是逢16進1,但我們只有0~9這十個數字,所以我們用A,B,C,D,E,F這五個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。
十六進制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方……
所以,在第N(N從0開始)位上,如果是是數 X (X 大於等於0,並且X小於等於 15,即:F)表示的大小為 X * 16的N次方。
假設有一個十六進數 2AF5, 那麼如何換算成10進制呢?
用豎式計算:
2AF5換算成10進制:
第0位: 5 * 160 = 5
第1位: F * 161 = 240
第2位: A * 162 = 2560
第3位: 2 * 163 = 8192 +
10997
直接計算就是:
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. 十進制轉二進制快速演算法

首先講一下「權重」的概念,數字中某位的權重:2的(該位所在的位數(從右至左)-1)次方,比如:100的權重為:2^(1-1)=1 1的權重為:2^(2-1)=2,二進制轉十進制:數字中所有位*本位的權重然後求和。

比如將10101轉化為十進制:10101=1*2^4+0*2^3+1*2^2+0*2^1+1*2^0=21

十進制如何轉二進制:將該數字不斷除以2直到商為零,然後將余數由下至上依次寫出,即可得到該數字的二進製表示,以將數字21轉化為二進制為例。


拓展資料:

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

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

3. 2進制8進制10進制16進制各個之間如何進行換算

一、二進制與十進制之間的轉換:

1、十進制轉二進制,方法為:十進制數除2取余法,即十進制數除2,余數為權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商為0為止。

4. 進制怎麼

計算機的進制計算方法

二進制轉十進制方法:「按權展開求和」

例: (1011.01)2 =(1×2^3+0×2^2+1×2^1+1×2^0+0×2^(-1)+1×2^(-2) )10 =(8+0+2+1+0+0.25)10 =(11.25)10 (2)十進制轉二進制 · 十進制整數轉二進制數:「除以2取余,逆序排列」。

(4)快速進制計算方法擴展閱讀:

對於任何一個數,我們可以用不同的進位制來表示。比如:十進數57(10),可以用二進製表示為111001(2),也可以用五進製表示為212(5),也可以用八進製表示為71(8)、用十六進製表示為39(16),它們所代表的數值都是一樣的。

5. 進制轉換演算法是怎麼算

很簡單的,給你看兩個例子你就明白了。
十進制轉二進制:用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 位,第n位數(0或1)分別乘以2的n次方,最後相加就是結果
例如:01101011 轉十進制:
第0位:1乘2的0次方=1
第1位:1乘2的1次方=2
第2位:0乘2的2次方=0
第3位:1乘2的3次方=8
第4位:0乘2的4次方=0
第5位:1乘2的5次方=32
第6位:1乘2的6次方=64
第7位:0乘2的7次方=0
然後:1+2+0+8+0+32+64+0=107.所以,十進制就是107

6. 關於2進制到10進制的快速口演算法

可以用減法,比如
11111100
你就算100000000=2^8=256
然後11111100等於256-4=252.
十六進制到十進制也這么算吧。感覺。
如果是數比較小,可以用加法。

7. 十進制轉換二進制怎麼快速計算

用湊數的方法. 簡單來說需要記憶的就是無論什麼進制,個位都是表示幾個1, 也就是個位上的基數是1.

舉例說明: 10D=?B

寫出二進制每位上的基數, 個位=1,高位=低位*2, 乘以2是因為要轉換成二進制, 寫到比10大為止

168421用這組數從大到小順序將10湊出來,用到的數下面寫1,沒用到的寫0
0101010包含1個8和1個2

因此10D=1010B

n進制基數: 個位1,高位=低位*n

8. 十六進制轉二進制,有什麼比較快的運算方法嗎

非十進制轉換為十進制:1.數值按權展開:規律如下(比較簡單):136.1=1*10E2+3*10E1+6*10E0+1*10E-1101.01B=1*2E2+0*2E1+1*2E0+0*2E-1 +1*2E-22cH=2*16E1+c*16E0=44//B表示2進制,H表示16進制 //E科學記數 即次方後接次方數 16E1 就是 16的1次方 十進制轉換為二進制1除二取余(整數部分),乘二取整(小數部分)除二取余:把十進制整數除以2得到商和余數,在將所得到的商除以2,又得到新的商和余數,這樣不斷的用二去除商,直到商為0為止.每次除的的余數便是相應的二進制數碼.最先得到的是最的有效位,最後得到的是最高有效位.如:11的二進制11/2=5--15/2=2--12/2=1--01/2=0--1//是整除,即二進制位 1011(從後面開始往上讀,高位低位的問題)乘二取整:對十進制小數乘2得到的整數部分和小數部分,整數部分既是相應的二進制數碼,再用2乘小數部分(之前乘後得到新的小數部分),又得到整數和小數部分.如此不斷重復,直到小數部分為0或達到精度要求為止.第一次所得到為最高位,最後一次得到為最低位如:0.25的二進制0.25*2=0.50.5*2=1即0.25的二進制為 0.01 ( 第一次所得到為最高位,最後一次得到為最低位)十進制轉八進制和十六進制方法和轉二進制相同,也可以用這種方法轉換到其他進制.如 90.875 轉換到16進制90/16=5--105/16=0--5整數部分就是 5A(10進制的10 對16進制的A)0.875*16=14小數部分就是 E(10進制的14 對16進制的E)其他進制間的互相轉換用二進制數編碼,存在這樣一個規律:n位二進制數最多能表示2的n次方種狀態.因此,諾用一組二進制數表示具有十六種狀態的十六進制數,至少要4位(16=2的4次方).同樣八位要 3位.如:將111101010011.10111B轉換為16進制從小數點開始,分別向左右4位一組劃分,不足4位的補0,然後將每組4位的二進制數以1位的十六進制數取代即可.1111 0101 0011 . 1011 10002 A F . C 5 (二進制對應的16進制數)其他進制間的轉換一樣的方法..自己把握要點.上面列舉的方法是我覺得比較簡單的方法,關於其他一些方法請自行參考相關書籍.如有錯誤請指正.

9. 如何快速口算出進制的轉換

10轉2的話,就取余數 例:153 153/2(0次方開始)%2=1 8進2的話,就單位取余 16進2也是,就單位取余

10. 隨機給個十進制的數,怎麼快速計算它的十六進制進制

以100這個十進制數轉為16進制為例子來說明10進制到16進制的轉換。
1. 計算100%16,得到的值4為對應16進制的最低位;
2. 計算100/16得6。
3. 然後對6%16=6。得到的值6為對應16進制的次低位
4. 計算6/16=0,為6時結束循環。
所以100對應的十六進制就是64。
下面給出一個例子程序:
#include<stdio.h>
#define N 8
void tran(int num) // 轉換函數
{
int arr[N],i; // N的大小要保證余數都能存進去
for (i=0;i < N;i++)
{
arr[i]=num%16; // 循環上述給出的例子過程,把余數存進數組中
num=num/16;
if(num==0) break; // 為0就退出了
}
printf("轉換為16進制數為: ");
for (;i>=0;i--) // arr[0]存的是對應16進制的最低位
switch (arr[i])
{
case 10: printf("A");break;
case 11: printf("B");break;
case 12: printf("C");break;
case 13: printf("D");break;
case 14: printf("E");break;
case 15: printf("F");break;
default: printf("%d",arr[i]);
}
printf("\n");
}
int main()
{
int num;
printf("請輸入要轉換的十進制數:\n");
scanf("%d",&num);
tran(num);
return 0;
}
上述程序適當修改一番,就能變成10進制向任意進制的轉換程序了。看明白後,自己改一改吧。

閱讀全文

與快速進制計算方法相關的資料

熱點內容
釣鮁魚的線組方法圖片 瀏覽:264
小米6定位哪裡設置方法 瀏覽:273
簡單幸運繩的編織方法 瀏覽:427
糖尿病高危人群計算方法 瀏覽:198
煤氣燃燒器安裝方法 瀏覽:281
貔貅怎麼佩戴好貔貅佩戴方法詳解 瀏覽:296
榮耀截屏在哪裡設置方法 瀏覽:832
花膠的正確泡發方法 瀏覽:841
這才是手機清理內存最好的方法 瀏覽:204
跳繩練腹肌方法視頻 瀏覽:551
酷派感應在哪裡設置方法 瀏覽:153
手機uc瀏覽器版本查看方法 瀏覽:287
研究中國股市的有效性問題的方法 瀏覽:661
天然氣洗澡的使用方法 瀏覽:792
工業鹽使用方法 瀏覽:145
鍛煉基礎腹肌方法視頻教程 瀏覽:203
介入方法是什麼意思 瀏覽:647
汽車阻尼器的安裝方法 瀏覽:155
論文設計並運用相關研究方法 瀏覽:560
js封裝的方法如何在頁面內調用 瀏覽:541