當前位置:首頁 » 操作系統 » 進制計演算法

進制計演算法

發布時間: 2022-05-20 05:25:28

⑴ 進制計算方法 詳細演算法

c++進制轉換程序:
這是一個結構完整、功能完善的程序,通過壓棧來實現進制轉換、出棧實現結果輸出:
#include<iostream.h>
#include<stdlib.h>
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;
typedef struct
{
int *base;
int *top;
int stacksize;
}SqStack;
SqStack S;
void InitStack(SqStack &S1)
{
S1.base=(int *)malloc(100*sizeof(int));
S1.top=S1.base;
S1.stacksize=STACK_INIT_SIZE;
}
void Push(SqStack &S2,int e)
{
*S2.top++=e;
}
void Pop(SqStack &S3,int &e)
{
e=* --S3.top;
}
void tentotwo(int n)
{
while(n)
{
Push(S,n%2);
n=n/2;
}
cout<<"轉成的二進制數是:"<<endl;
while(S.top!=S.base)
{
int e;
Pop(S,e);
cout<<e;
}
cout<<endl;
}
void tentoeight(int n)
{
while(n)
{
Push(S,n%8);
n=n/8;
}
cout<<"轉成的八進制數是:"<<endl;
while(S.top!=S.base)
{
int e;
Pop(S,e);
cout<<e;
}
cout<<endl;
}

void tentosixteen(int n)
{
while(n)
{
Push(S,n%16);
n=n/16;
}
cout<<"轉成的十六進制數是:"<<endl;
while(S.top!=S.base)
{
int e;
Pop(S,e);
switch(e)
{
case 10: cout<<'A';
break;
case 11: cout<<'B';
break;
case 12: cout<<'C';
break;
case 13: cout<<'D';
break;
case 14: cout<<'E';
break;
case 15: cout<<'F';
break;
}
cout<<e;
}
cout<<endl;
}

int main()
{
InitStack(S);
f:
cout<<"請選擇您想進行的操作:1.十進制轉換成二進制 2.十進制轉換成八進制 3.十進制轉換成十六進制"<<endl;
int a,m;
cin>>a;
switch (a)
{
case 1:
{
cout<<"請輸入一個十進制數"<<endl;
cin>>m;
tentotwo(m);
break;
}
case 2:
{
cout<<"請輸入一個十進制數"<<endl;
cin>>m;
tentoeight(m);
break;
}
case 3:
{
cout<<"請輸入一個十進制數"<<endl;
cin>>m;
tentosixteen(m);
break;
}
}
goto f;
return 0;
}

⑵ 生活中還有哪些進制計數法

生活中的進制計數法有:四進制、五進制、十進制、十二進制、三十進制。

⑶ 二進制的計算方法是怎樣的請舉個例子謝謝,

二進制的運算算術運算二進制的加法:0+0=0,0+1=1 ,1+0=1, 1+1=10(向高位進位);即7=111,10=10103=11。

二進制的減法:0-0=0,0-1=1(向高位借位) 1-0=1,1-1=0 (模二加運算或異或運算) ;

二進制的乘法:0 * 0 = 00 * 1 = 0,1 * 0 = 0,1 * 1 = 1 二進制的除法:0÷0 = 0,0÷1 = 0,1÷0 = 0 (無意義),1÷1 = 1 ;

邏輯運算二進制的或運算:遇1得1 二進制的與運算:遇0得0 二進制的非運算:各位取反。

(3)進制計演算法擴展閱讀:

二進制的轉換:

二進制轉換為其他進制:

1、二進制轉換成十進制:基數乘以權,然後相加,簡化運算時可以把數位數是0的項不寫出來,(因為0乘以其他不為0的數都是0)。小數部分也一樣,但精確度較少。

2、二進制轉換為八進制:採用「三位一並法」(是以小數點為中心向左右兩邊以每三位分組,不足的補上0)這樣就可以輕松的進行轉換。例:將二進制數(11100101.11101011)2轉換成八進制數。 (11100101.11101011)2=(345.353)8

3、二進制轉換為十六進制:採用的是「四位一並法」,整數部分從低位開始,每四位二進制數為一組,最後不足四位的,則在高位加0補足四位為止,也可以不補0。

小數部分從高位開始,每四位二進制數為一組,最後不足四位的,必須在低位加0補足四位,然後用對應的十六進制數來代替,再按順序寫出對應的十六進制數。

⑷ 10進制轉16進制的計算方法是怎樣的

10進制轉16進制的計算方法是對於整數部分,用被除數反復除以16,除第一次外,每次除以16均取前一次商的整數部分作被除數並依次記下每次的余數。另外,所得到的商的最後一位余數是所求二進制數的最高位。具體的過程如下:

比如要轉換120為十六進制數:

1、把要轉換的數,除以16,得到商和余數,

2、那麼要轉換的數是120, 120 ÷ 16,得到商是7,余數是8。

3、「將商繼續除以16,直到商為0……」,現在商是7,還不是0,所以繼續除以16。那就 7 ÷ 16, 得到商是0,余數是7。現在商已經是0。

4、我們兩次計算依次得到余數分別是:8、7,將所有餘數倒序排列,那就是:78。

注意事項:

1、對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱「乘基取整法」。

2、進制轉換是人們利用符號來計數的方法,進制轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。

⑸ 十六進制計算方法

0-9對應0-9;

A-F對應10-15;

十六進制數的加減法的進/借位規則為:借一當十六,逢十六進一。

十六進制數同二進制數及十進制數一樣,也可以寫成展開式的形式。

十進制整數轉十六進制數:「除以16取余,逆序排列」(除16取余法)

例:(1765)10=(6E5)2

1765/16=110.......5

110/16=6........14

616=0......6

因為14對應E

十六進制數轉換成二進制數:把每一個十六進制數轉換成4位的二進制數,就得到一個二進制數。

十六進制數字與二進制數字的對應關系如下:

0000 -> 0 0100 -> 4 1000 -> 8 1100 -> C

0001 -> 1 0101 -> 5 1001 -> 9 1101 -> D

0010 -> 2 0110 -> 6 1010 -> A 1110 -> E

0011 -> 3 0111 -> 7 1011 -> B 1111 -> F

例:將十六進制數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

(5)進制計演算法擴展閱讀:

進制轉換的理論:

1、 二進制數、十六進制數轉換為十進制數:

用按權展開法把一個任意R 進制數a n a n-1 ...a1a 0 . a -1 a -2...a -m轉換成十進制數,其十進制數值為每一位數字與其位權之積的和。

a n ×Rn+ a n-1×R n-1 +…+ a 1×R 1 + a 0×R 0 + a -1 ×R -1+ a -2×R -2+ …+ a -m ×R -m

2、 十進制轉化成R 進制十進制數輪換成R 進制數要分兩個部分:

整數部分要除R 取余數,直到商為0,得到的余數即為二進數各位的數碼,余數從右到左排列(反序排 列) 。小數部分要乘R 取整數,得到的整數即為二進數各位的數碼,整數從左到右排列(順序排列) 。

3、十六進制轉化成二進制:每一位十六進制數對應二進制的四位,逐位展開。

4、 二進制轉化成十六進制:將二進制數從小數點開始分別向左(對二進制整數)或向右(對二進制小數)每四位組成一組,不足四位補零。

⑹ 進制轉換演算法是怎麼算

很簡單的,給你看兩個例子你就明白了。
十進制轉二進制:用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

⑺ 二進制轉換成十六進制計算方法

二進制轉十六進制方法為:十六進制是取四合一,即從二進制的小數點為分界點,向左(或向右)每四位取成一位;

組分好以後,對照二進制與十六進制數的對應表,將四位二進制按權相加,得到的數就是一位十六進制數,然後按順序排列,小數點的位置不變哦,最後得到的就是十六進制數

(注意事項:4位二進制轉成十六進制是從右到左開始轉換,不足時補0)。

(7)進制計演算法擴展閱讀:

進制轉換是人們利用符號來計數的方法。進制轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。

基數是指,進位計數制中所採用的數碼(數制中用來表示「量」的符號)的個數。位權是指,進位制中每一固定位置對應的單位值。

「數制」只是一套符號系統來表示指稱「量」的多少。我們用「1」這個符號來表示一個這一「量」的概念。自然界的「量」是無窮的,我們不可能為每一個「量」都造一個符號,這樣的系統沒人記得住。

所以必須用有限的符號按一定的規律進行排列組合來表示這無限的「量」。符號是有限的,這些符號按照某種規則進行排列組合的個數是無限的。十進制是10個符號的排列組合,二進制是2個符號的排列組合。

在進行進制轉換時有一基本原則:轉換後表達的「量」的多少不能發生改變。二進制中的111個蘋果和十進制中的7個蘋果是一樣多的。

參考資料:網路-進制轉換

⑻ 進制計數法有哪些

2進制、8進制、10進制和16進制。

⑼ 有哪些進制計數法

一般常用的有2進制,8進制,10進制,16進制

2進制在計算機領域中應用最廣泛,然後是16進製表示微機中的地址,10進制則是平常應用中的。8進制相對來說應用少一點。

熱點內容
獲取android簽名 發布:2025-01-13 13:40:21 瀏覽:594
單片機編譯器和驅動 發布:2025-01-13 13:31:33 瀏覽:439
tis伺服器怎麼進pe 發布:2025-01-13 13:31:02 瀏覽:276
android線程與線程通信 發布:2025-01-13 13:30:27 瀏覽:38
FTP伺服器本地策略 發布:2025-01-13 13:20:47 瀏覽:485
地下城堡2掛機腳本 發布:2025-01-13 13:20:44 瀏覽:205
web雲伺服器配置 發布:2025-01-13 13:19:54 瀏覽:459
小康密碼是多少 發布:2025-01-13 13:19:13 瀏覽:41
javafile類 發布:2025-01-13 13:19:08 瀏覽:83
c語言求逆 發布:2025-01-13 13:14:43 瀏覽:929