国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

十六進(jìn)制數(shù)如何轉(zhuǎn)十進(jìn)制 C/C++實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了十六進(jìn)制數(shù)如何轉(zhuǎn)十進(jìn)制 C/C++實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一.問(wèn)題分析

我們輸入一個(gè)真正意義上的十六進(jìn)制數(shù),0x開(kāi)頭,返回一個(gè)十進(jìn)制數(shù)。

二.思路生成

輸入一個(gè)十六進(jìn)制的數(shù),依次取出它的每一位,然后根據(jù)權(quán)值累加,得到10進(jìn)制值。

三.問(wèn)題解決及代碼

以C++為例
1.如何輸入一個(gè)16進(jìn)制數(shù),使用標(biāo)志符hex,cin>>hex>>"變量名"

如果指定了輸入進(jìn)制數(shù),如上,那么以后你輸入的都是hex即16進(jìn)制格式的數(shù)


	int n,m,h;
	//cin>>hex代表輸入的數(shù)是16進(jìn)制的,系統(tǒng)默認(rèn)是十進(jìn)制數(shù),
	cin >>hex>> n>>m;
	//已經(jīng)改變了輸入格式,因此h也是16進(jìn)制的
	cin >> h;
	//輸出沒(méi)有改變,則會(huì)將16轉(zhuǎn)成10進(jìn)制輸出
	cout << n<<" "<<m<<" "<<h<<endl;

輸出結(jié)果如下,不按照16進(jìn)制格式即0x輸入,系統(tǒng)也會(huì)變成16進(jìn)制數(shù),第二行為10進(jìn)制輸出

c++十六進(jìn)制轉(zhuǎn)十進(jìn)制,c語(yǔ)言,c++,開(kāi)發(fā)語(yǔ)言

2.如何將16進(jìn)制數(shù)n 每一位存儲(chǔ),并且計(jì)算各個(gè)位的權(quán)值,代碼如下
void fun3(int n) {
	//計(jì)算轉(zhuǎn)化十進(jìn)制后和
	unsigned int sum = 0;
	//用數(shù)組來(lái)存儲(chǔ)16進(jìn)制各個(gè)位的數(shù)據(jù)
	int i = 0; unsigned int arr2[10];

	//每次循環(huán)取出最低一位存儲(chǔ)到arr2數(shù)組里
	while (n > 0) {
		//取最低位存儲(chǔ)到arr2的低位
		arr2[i] = n % 16;
		//輸出每次取的數(shù)
		cout <<hex<< arr2[i] << " ";

		i++;
		//移除取出的數(shù)
		n = n / 16;
	}
	cout << endl;
	//計(jì)算權(quán)值,例如5fff, 輸出第三行即為sum每次累加的值
	for (int j = i - 1; j >= 0; j--) {
		sum = sum * 16 + arr2[j];
		cout << hex << sum << " ";
	}
	cout << endl;
	cout <<dec<< sum << endl;


}

關(guān)于輸出界面 第二行是每次循環(huán)取出的數(shù),第三行是每次sum累加的值,這樣更便于理解

c++十六進(jìn)制轉(zhuǎn)十進(jìn)制,c語(yǔ)言,c++,開(kāi)發(fā)語(yǔ)言
C語(yǔ)言實(shí)現(xiàn)

下面代碼會(huì)給到詳細(xì)注釋,這里就不多贅述了

void fun3(int n) {
	//計(jì)算轉(zhuǎn)化十進(jìn)制后和
	unsigned int sum = 0;
	//用數(shù)組來(lái)存儲(chǔ)16進(jìn)制各個(gè)位的數(shù)據(jù)
	int i = 0; unsigned int arr2[10];

	//每次循環(huán)取出最低一位存儲(chǔ)到arr2數(shù)組里
	while (n > 0) {
		//取最低位存儲(chǔ)到arr2的i位,i初始值為0
		arr2[i] = n % 16;
		//輸出每次取的數(shù)
		//%x以hex16進(jìn)制輸出,%o就是oct八進(jìn)制輸出,%d就是dec十進(jìn)制輸出
		printf("%x ", arr2[i]);

		i++;
		//移除取出的數(shù)
		n = n / 16;
	}
	printf("\n");
	//計(jì)算權(quán)值,例如5fff, 輸出第三行即為sum每次累加的值
	for (int j = i - 1; j >= 0; j--) {
		sum = sum * 16 + arr2[j];
		//輸出每次sum累加的值
		printf("%x ", sum);
	}
	printf("\n");
	//輸出總值
	printf("%x\n",sum);


}

關(guān)于輸出界面 第二行是每次循環(huán)取出的數(shù),第三行是每次sum累加的值,這樣更便于理解

c++十六進(jìn)制轉(zhuǎn)十進(jìn)制,c語(yǔ)言,c++,開(kāi)發(fā)語(yǔ)言文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-760315.html

到了這里,關(guān)于十六進(jìn)制數(shù)如何轉(zhuǎn)十進(jìn)制 C/C++實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包