您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么解決關于C++讀入數字按位取出與進制轉換問題,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
這一片博客我就不寫具體的一個題了,只是總結一種典型問題——讀入數字按位取出。
就拿數字12345舉例吧。
是首先,我們要取出個位。這樣取出:
12345/1=12345
12345%10=5. //為了好發現規律
這樣我們就有了它的個位。十位是這樣:
12345/10=1234
1234%10=4.
同理,百位:
12345/100=123
123%10=3.
于是可以發現,取出哪一位,就是要先將原數除以這一位的位名,再模10.
程序:
#include<iostream>#include<cmath>using namespace std;int main(){ int a[100]; int wei = 0; int num; cin >> num; while ((num / (int)pow(10, wei)) != 0) //循環終止條件是這個數的位數小于這一次要除以的數的位數 { a[wei] =(num/(int)pow(10,wei))%10; //根據剛才得出的結論,取出各位,存到數組中。 wei++; }}
然后是進制轉換問題。其實和取位問題差不多,只不過取出之后要乘上這一位對應的進制的次方數。
程序:
long long to10(int jz,int num)//功能:將輸入的數轉換成十進制 { long long result=0; int wei=0; while(num/(int)pow(10,wei)!=0)//將輸入的數按位取出 { result+=pow(jz,wei)*((int)(num/pow(10,wei))%10);//按數所在的位置乘上對應的進制的次方 wei++;// (num/1)%10// (num/10)%10// (num/100)%10 } return result; }
看完上述內容,你們對怎么解決關于C++讀入數字按位取出與進制轉換問題有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。