目錄
C++程序,使用遞歸將二進制數轉換為格雷碼
二進位
遞迴
格雷碼
格雷碼或反射二進位碼是一種特殊類型的數字二進位表示形式,其中兩個連續值僅在一位上不同。例如,1和2的二進制等價物是01和10,這裡有兩個位正在改變。但在格雷碼中,1是01,2是11,只有一位在變化。在本文中,我們將了解如何使用 C 中的遞歸將給定的二進位數轉換為其等效的格雷碼。
將數字作為十進制整數傳遞
在第一個範例中,我們提供十進制數字。數字只有 0 和 1,但數字是十進制的。例如,如果我們想傳遞 6 作為輸入,我們傳遞 110(十進制的一百零 10),這相當於二進位表示的 6。該程式也類似地返回輸出。
演算法
- 定義一個函數solve(),這將採用二進制數
- 如果 n 為 0,則
- 返回0
- 如果結束
- 最後 := n 的最後一位
- second_last = n 的倒數第二位
- 如果最後一位和倒數第二位不同,則
- 輸入1並呼叫solve(n切割最後一位)
- 否則
- 輸入0並呼叫solve(n切割最後一位)
- 如果結束
- solve() 函數結束
範例
#include <iostream> using namespace std; int solve( int n ) { if( n == 0 ) return 0; int last = n % 10; int second_last = (n / 10) % 10; if( (last && !second_last) || (!last && second_last) ) { return (1 + 10 * solve( n / 10 )); } return (10 * solve( n / 10 )); } int main() { cout << "Gray code for the number 2 (10) is: " << solve( 10 ) << endl; cout << "Gray code for the number 6 (110) is: " << solve( 110 ) << endl; cout << "Gray code for the number 13 (1101) is: " << solve( 1101 ) << endl; cout << "Gray code for the number 93 (1011101) is: " << solve( 1011101 ) << endl; }
登入後複製
輸出
Gray code for the number 2 (10) is: 11 Gray code for the number 6 (110) is: 101 Gray code for the number 13 (1101) is: 1011 Gray code for the number 93 (1011101) is: 1110011
登入後複製
結論
可以透過對連續位元應用異或運算來找到格雷碼或反射二進位碼。同樣的事情是透過取給定數字的最後兩位來實現的,當它們不相同時,遞歸調用該函數並傳遞除最後一位之外的數字,結果將與1 連接,否則與0 連接,依此類推在。在範例中,我們提供了整數十進制數的輸入,輸出也採用整數十進位格式。可以透過採用字串類型輸入來解決相同的問題,該輸入可用於在需要時提供更大的輸入。
以上是C++程序,使用遞歸將二進制數轉換為格雷碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)