[問題] 二進位轉十進位 加入一個判斷式

看板C_and_CPP作者 (Sedra smith)時間14年前 (2010/06/12 23:29), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/3 (看更多)
使用c++設計一個二進位轉成十進位的程式如下: #include <iostream> #include <string> using namespace std; int main(){ string bin_n; int dec_n = 0; int i; cout << "請輸入二進位數字:"; cin >> bin_n; for(i = 0; i < bin_n.length(); i++) dec_n = dec_n * 2 + (bin_n[i] - '0'); cout << "轉成十進位後是:" << dec_n << endl; return 0; } 但是若輸入"非"二進位的數字 Ex:2001 會得到結果為17 若是要再其中加入一個判斷式 使得輸入"非"二進位的數字時 會進到else裡面 要怎麼設計這個程式呢 一個小小的問題麻煩版上的高手們解答 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.166.202

06/12 23:45, , 1F
check each bin_n[i] is lower than 2
06/12 23:45, 1F

06/13 00:42, , 2F
如果是C++ 用BOOL來強型別 非0 即TRUE 有比較高明嗎 @@
06/13 00:42, 2F

06/13 00:46, , 3F
dec_n = dec_n * 2 + ( (bin_n[i] - '0') != 0 );
06/13 00:46, 3F
文章代碼(AID): #1C4wVmx7 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1C4wVmx7 (C_and_CPP)