題目描述:對於乙個十進位制數a,將a轉換為二進位制數,然後按位逆序列排列,再轉換為十進位制數b,b即為a的二進位制逆序數。例如,對於十進位制數173,其二進位制形式為10101101,逆序排列得到10110101,其十進位制數為181,181即為173的二進位制逆序數。
輸入:乙個1000位(即10e999)以內的十進位制數
輸出:輸入的十進位制數的二進位制逆序數
測試樣例:
輸入: 173
輸出: 181
c++**:
#include
#include
#include
#include
using
namespace std;
string divide
(string str,
int x)
//字串除法。 字串 str 除以 x 後,返回所得字串
int pos =0;
while
(str[pos]
=='0'
)//尋找首個非零下標
return str.
substr
(pos)
;// !!! 刪除前置多餘的0
}string multiple
(string str,
int x)
//!!! 字串乘法。 字串數str乘以x,返回所得字串
if(carry !=0)
//仍有進製
return str;
} string add
(string str,
int x)
//!!! 字串加法。 字串數str加上x,返回所得字串
if(carry !=0)
//仍有進製
return str;
}int
main()
string answer =
"0";
int a=0;
for(
int i=
0; isize()
;++i)
//理解:二進位制數轉化為十進位制數,binary[i]內,從第乙個非0的數binary[0]開始,乘以2再加下一位數 binary[0],所得的數乘以2再加上下一位數
//cout}return0;
}
二進位制與十進位制
人們在生產實踐和日常生活中創造了多種表示數的方法,這些數的表示規則稱為數制。例如人們常用的十進位制 計算機中採用的二進位制等。十進位制計數法的加法規則是 逢十進一 任意乙個十進位制可用0 1 2 3 4 5 6 7 8 9十個字元的組合表示,它的基數是 10。二進位制計數法的加法規則是 逢二進一 任...
二進位制與十進位制
從右往左開始,數每一位2的n次冪並相加,冪從0開始每次遞增1 11101010 1 2 7 1 2 6 1 2 5 0 2 4 1 2 3 0 2 2 1 2 1 0 2 0 234除以2除到商為0即止,再把餘數倒序相連 234 234 2 商 117 餘 0 117 2 商 58 餘 1 58 2...
二進位制轉十進位制
二進位制轉十進位制方法很多,如字元陣列,指標法等 下面用字串函式的方法實現 二進位制轉十進位制 主要用 到 string函式性質及pow求乙個數的n次方的函式過載 by adengou 2010.08.04 win7 dev c 5.0 vs 2010 通過 include include incl...