最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言的進制轉(zhuǎn)換及算法實現(xiàn)教程

 更新時間:2021年01月23日 16:24:12   作者:別光想著,趕緊去做  
這篇文章主要介紹了C語言的進制轉(zhuǎn)換及算法實現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1、其他進制轉(zhuǎn)十進制

1.1、二進制轉(zhuǎn)十進制

轉(zhuǎn)換規(guī)程: 從最低位開始,將每個位上的數(shù)提取出來,乘以2的(位數(shù)-1)次方,然后求和,例如: 

二進制 1011 = 1*2^0 + 1*2^1 + 0*2^2 + 1*2^3 = 1 + 2 + 0 + 8 = 11

1.2、八制轉(zhuǎn)十進制

轉(zhuǎn)換規(guī)則: 從最低位開始,將每個位上的數(shù)提取出來,乘以8的(位數(shù)-1)次方,然后求和,例如:

 八進制 0123 = 3*8^0 + 2*8^1 + 1*8^2 = 3+16+64 = 83

1.3、十六進制轉(zhuǎn)十進制

轉(zhuǎn)換規(guī)則: 從最低位開始,將每個位上的數(shù)提取出來,乘以16的(位數(shù)-1)次方,然后求和,例如:

  十六進制 0x34A = 10*16^0 + 4*16^1 + 3*16^2 = 10+64+768 = 842

2、十進制轉(zhuǎn)其他進制

2.1、十進制轉(zhuǎn)二進制binary

規(guī)則: 將該數(shù)不斷除以2,直到商為0為止,然后將每步得到的余數(shù)倒過來,就是對應的二進制,故此法叫做除商逆序取余法;

案例: 將56轉(zhuǎn)換為二進制

 56 :
 56 / 2 = 28 余0
 28 / 2 = 14 余0
 14 / 2 = 7 余0
 7 / 2 = 3 余1
 3 / 2 = 1 余1
 1 / 2 = 0余 1
 故56轉(zhuǎn)換為二進制的結(jié)果是:111000

代碼實現(xiàn):

#include <stdio.h>

//轉(zhuǎn)十進制二進制
void main() {
	printf("請輸入一個十進制數(shù):");
	int binary = 0; //二進制數(shù)
	int b = 1; //循環(huán)標志		 
	int num[100] ; //用來存二進制的數(shù)組
	int index = 0;	//數(shù)組的下標
	int count = -1; //用來計算數(shù)組的使用個數(shù),這里使用-1是因為數(shù)組的下標是從0開始的
	//所以當我們循環(huán)一次去自增的時候,第一次應該是從0開始,如果count的初始值是0的話
	//就會導致使用的第一個數(shù)組的下標為1,那樣會導致存數(shù)據(jù)的下標index和記錄使用的下標count不一致
	//使數(shù)據(jù)溢出
	scanf("%d",&binary);
	while (b) {
		num[index] = binary % 2; //每次運算取余
		binary /= 2; //每次運算二進制數(shù)需要除以2
		//printf("num[%d]=%d\n",index,num[index]);
		index++; //每循環(huán)一次數(shù)組下標就移一位
		count++; //每循環(huán)一次就表示占用了數(shù)組的一個位置
		if (binary == 0) {
			b = 0;
		}
	}
	printf("占用數(shù)組位置%d個",count+1);
	printf("\n");
	printf("二進制數(shù)為:");
	for (int i = count; i >=0; i--) { 
			printf("%d",num[i]);
	}
	getchar();
	getchar();//回車會被接收,所以需要兩個來暫停控制臺
}

2.2、十進制轉(zhuǎn)八進制octonary

規(guī)則: 將該數(shù)不斷除以8,直到商為0,然后將每步得到的余數(shù)倒過來,就是對應的八進制。

**案例:**將156轉(zhuǎn)換為八進制

 156:
 156 / 8 = 19 余 4
 19 / 8 = 2 余 3
 2 / 8 = 0 余 2
 故156轉(zhuǎn)換為八進制的結(jié)果是:0234

代碼實現(xiàn):

#include <stdio.h>
//十進制轉(zhuǎn)八進制
#define TRUE 1 //宏定義 true為1
#define FALSE 0//宏定義 false為0
void main() {
	int num[100]; //定義數(shù)組用來存儲轉(zhuǎn)換后的八進制數(shù)
	int octonary = 0; //十進制數(shù)
	int b = TRUE; //循環(huán)賦值的標志
	int index = 0; //存儲八進制位數(shù)的下標
	int count = -1; //八進制數(shù)的位數(shù)
	printf("請輸入一個十進制數(shù):");
	scanf("%d",&octonary);
	while (b) {
		num[index++] = octonary % 8; //獲取余數(shù)
		octonary /= 8; //累除
		count++;
		if (octonary == 0) { //當octonary為0時,表示已經(jīng)除完了,除到底了,這時候只需要將所得到的的余數(shù)
			b = FALSE;		//倒過來就是需要求的八進制數(shù)了
		}
	}
	printf("占用數(shù)組位置%d個\n",count+1);
	printf("八進制數(shù)為:");
	for (int i = count; i >= 0; i--) {
		printf("%d",num[i]);
	}

	getchar();
	getchar();

}

2.3、十進制轉(zhuǎn)十六進制HEX(hexadecimal)

規(guī)則: 將該數(shù)不斷除以16,直到商為0,然后將每步得到的余數(shù)倒過來,就是對應的十六進制。

案例: 將356轉(zhuǎn)換成十六進制

 356:
 356 / 16 = 22 余 4
 22 / 16 = 1 余 6
 1 / 16 = 0 余 1
 故356轉(zhuǎn)換為十六進制的結(jié)果為0x164

代碼實現(xiàn):

#include <stdio.h>
#include <stdbool.h>
//十進制轉(zhuǎn)換為十六進制
void main() {
	int hexadecimal = 0;
	printf("請輸入一個十進制數(shù):");
	scanf("%d",&hexadecimal);
	bool b = true;
	int index = 0;//數(shù)組的下標
	int num[100];//用來存儲轉(zhuǎn)換后十六進制
	while (b) {
		num[index++] = hexadecimal % 16;
		hexadecimal /= 16;
		if (hexadecimal == 0) {
			b = false;
		}
	}
	printf("占用數(shù)組的位置%d個\n",index);
	printf("轉(zhuǎn)換后的十六進制數(shù)為:");
	for (int i = index-1; i >= 0; i--) {
		printf("%d",num[i]);
	}
	getchar();
	getchar();
}

3、二進制轉(zhuǎn)其他進制

3.1、二進制轉(zhuǎn)八進制

規(guī)則: 從低位開始,將二進制數(shù)每三位一組(111表示7)分組,不夠的用0補充,將每一組轉(zhuǎn)換成對應的八進制即可

案例: 將11010101轉(zhuǎn)成八進制

 11010101:對其進行三位一體分組
 第一組:101 ——>  5
 第二組:010 ——>  2
 第三組:011 ——>  3
 故,二進制11010101對應的八進制數(shù)是:0325

3.2、二進制轉(zhuǎn)十六進制

規(guī)則: 從低位開始,將二進制數(shù)每四位一組(1111表示F)進行分組,轉(zhuǎn)成對應的十六進制數(shù)即可

案例: 將11010101轉(zhuǎn)成十六進制

 11010101:對其進行四位一體分組
 第一組:0101 ——> 5
 第二組:1101 ——> 13
 故,二進制11010101轉(zhuǎn)換為十六進制數(shù)是:0xD5

4、其他進制轉(zhuǎn)二進制

4.1、八進制轉(zhuǎn)二進制

規(guī)則: 將八進制數(shù)的每一位,轉(zhuǎn)換成對應的一個三位的二進制數(shù)即可

案例: 將0237轉(zhuǎn)成二進制

 0237:每一位對應三位二進制數(shù)進行拆分
 第一組 7 ——> 111
 第二組 3 ——> 011
 第三組 2 ——> 010
 故,八進制數(shù)0237轉(zhuǎn)換為二進制為:10011111

4.2、十六進制轉(zhuǎn)二進制

規(guī)則: 將十六進制數(shù)的每一位,轉(zhuǎn)換成對應的一個四位的二進制數(shù)即可

案例: 將0X23B轉(zhuǎn)換成二進制數(shù)

 0x23B:每一位對應四位二進制數(shù)進行拆分
 第一組 B ——> 1011
 第二組 3 ——> 0011
 第三組 2 ——> 0010
 故,0x23B轉(zhuǎn)換為二進制數(shù)為:1000111011

總結(jié)

到此這篇關(guān)于C語言的進制轉(zhuǎn)換及算法實現(xiàn)的文章就介紹到這了,更多相關(guān)C語言進制轉(zhuǎn)換及算法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實現(xiàn)簡單的抽獎系統(tǒng)

    C語言實現(xiàn)簡單的抽獎系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單的抽獎系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • C++中為什么要使用動態(tài)內(nèi)存

    C++中為什么要使用動態(tài)內(nèi)存

    大家好,本篇文章主要講的是C++中為什么要使用動態(tài)內(nèi)存,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • C語言 array數(shù)組的用法詳解

    C語言 array數(shù)組的用法詳解

    數(shù)組是指一組數(shù)據(jù)的集合,(容器)數(shù)組中的每個數(shù)據(jù)稱為元素。在Java中,數(shù)組也是Java對象。數(shù)組中的元素可以是任意類型(包括基本類型和引用類),但同一個數(shù)組里只能存放類型相同的元素
    2021-10-10
  • C++之Primer類型轉(zhuǎn)換方式

    C++之Primer類型轉(zhuǎn)換方式

    這篇文章主要介紹了C++之Primer類型轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • c++實現(xiàn)LinkBlockedQueue的問題

    c++實現(xiàn)LinkBlockedQueue的問題

    這篇文章主要介紹了c++實現(xiàn)LinkBlockedQueue的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • C++實現(xiàn)LeetCode(172.求階乘末尾零的個數(shù))

    C++實現(xiàn)LeetCode(172.求階乘末尾零的個數(shù))

    這篇文章主要介紹了C++實現(xiàn)LeetCode(172.求階乘末尾零的個數(shù)),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C++實現(xiàn)LeetCode(14.最長共同前綴)

    C++實現(xiàn)LeetCode(14.最長共同前綴)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(14.最長共同前綴),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++初階之list的模擬實現(xiàn)過程詳解

    C++初階之list的模擬實現(xiàn)過程詳解

    在C++中我們經(jīng)常使用STL,那個在那些我們常用的數(shù)據(jù)結(jié)構(gòu)vector,list的背后,又是如何實現(xiàn)的呢?這篇文章主要給大家介紹了關(guān)于C++初階之list的模擬實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • C++基本用法實踐之智能指針詳解

    C++基本用法實踐之智能指針詳解

    為了減少手動管理內(nèi)存帶來的困擾,c++提出了智能指針,可以幫助我們進行內(nèi)存管理,下面小編就來和大家簡單聊聊C++中智能指針的基本用法吧
    2023-07-07
  • C語言棧之順序棧

    C語言棧之順序棧

    這篇文章主要為大家詳細介紹了C語言的順序棧,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02

最新評論

伽师县| 宝清县| 东至县| 罗甸县| 辽中县| 普陀区| 竹溪县| 大冶市| 桦川县| 怀仁县| 盐池县| 巫山县| 商水县| 定兴县| 楚雄市| 开平市| 临泉县| 咸阳市| 永定县| 平利县| 永修县| 黄大仙区| 岚皋县| 九江市| 景谷| 崇义县| 天水市| 阳朔县| 巧家县| 金门县| 阳朔县| 汶川县| 西盟| 岳西县| 志丹县| 海伦市| 龙泉市| 开原市| 上高县| 高密市| 潜江市|