C++輸入十進位制數,輸出對應二進位制數、十六進位制數
一、輸出十進位制、十六進位制、八進位制數:
dec: 指示cout以十進位制輸出。 December
hex: 指示cout以十六進位制輸出。 Hexadecimal
oct: 指示cout以八進位制輸出。 October
#include<iostream>
using namespace std;
int main(){
int n_max = 42;
cout<<n_max<<endl; //十進位制輸出
cout<<hex<<n_max<<endl; //十六進位制輸出
cout<<oct<<n_max<<endl; //八進位制輸出
return 0;
}
二、輸出二進位制數:
①、#include<bitset>
②、const int num = 32;//num表示bitset宣告的位數,即有多少位輸出。
③、cout<<(bitset<num>)input<<endl; //格式:(bitset<num>)input
#include<iostream>
#include<bitset>
using namespace std;
const int num = 32;//num表示bitset宣告的位數,即有多少位輸出。
int main(){
int input = 42;
cout<<(bitset<num>)input<<endl; //格式:(bitset<num>)input
return 0;
}
三、逐個輸入十進位制數,逐個輸出對應二進位制數及十六進位制數:
#include<iostream>
#include<bitset>
using namespace std;
const int num=32;
int main(){
std::ios_base::sync_with_stdio(false); //這行程式碼,加速cin、cout
int input;
while(cin>>input){
cout<<(bitset<num>)input<<endl; //二進位制
cout<<hex<<input<<endl; //十六進位制
}
return 0;
}
四、ctrl+z作為cin結束的問題:
①、Ctrl+z並不會產生一個普通的ASCII碼值,也就是說它不會產生一個字元,不會被放到輸入緩衝區中,所以讀不到它,你輸入了就好像木有輸入一樣,它只能作為結束迴圈來用。
②、還有在Windows系統中,只有按下回車才會去檢測之前有沒有按下Ctrl+z,才會去檢測流是否結束。就是在按下回車之前,輸入緩衝區並不能檢測到是否有Ctrl+z按下,所以即使按了Ctrl+z,照樣還可以從鍵盤去輸入內容,但是Ctrl+z這行輸入的內容到時候並不會被讀取到,因為在緩衝區檢測時,如果檢測到Ctrl+z(結束標誌),就會認為輸入流結束了,那麼後邊的內容就不會被讀進去,而被丟掉。
五、驗證結果:
二進位制中,從右起某一位的權值 = 2^(其前面的數位數量)。
六、while(cin>>x)與 scanf("%d",&x)!=EOF:
注: cin速度慢,測試資料太多可能會超時的。
注:有的時候,用scanf("%lld")來讀寫long long可能會出錯。
要用cin讀,可以在int main()中開頭加std::ios_base::sync_with_stdio(false) 來加速cin。
相關文章
- 如何把十進位制的數輸入用二進位制全加器,並以十進位制輸出
- printf與scanf如何輸出、輸入十六進位制與八進位制數
- 輸出二進位制數
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- printf()將10進位制數安照輸出16進位制,8進位制輸出
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- 在c語言中輸出8進位制數,16進位制數C語言
- 十進位制——二 (八、十六 )進位制
- 對十進位制數字的按位輸出,取反,並求其位數
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 二進位制、十進位制與十六進位制相互轉化
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- 十進位制轉十六進位制
- 八進位制,十六進位制和浮點數
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 第一章:位運算-------輸入浮點數,輸出對應二進位制數
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- 進位制詳解:二進位制、八進位制和十六進位制
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- Qt進位制轉換(十進位制轉十六進位制)QT
- 教你如何進行數倉字串、二進位制、十六進位制互轉字串
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- 進位制數轉換方法(八/十六/十)
- printf十六進位制輸出64位值的方法
- 牛客網測試題 把十六進位制數字轉換為十進位制數字
- 對於十進位制數 -1023,包含符號位在內,至少需要多少個二進位制位表示該數符號
- 二進位制轉十進位制快速方法
- C printf按8進位制、10進位制、16進位制輸出以及高位補0
- n進位制轉十進位制
- 你知道二進位制、八進位制、十進位制、十六進位制的區別嗎?它們分別有什麼應用場景?
- 十進位制轉二進位制推導(草稿)
- JavaScript十進位制轉換為二進位制JavaScript
- C 如何將輸出的地址轉化為十進位制數
- 負數補碼(16進位制轉10進位制的負數)