數學問題 十進位制與二進位制

2021-10-03 08:29:50 字數 1280 閱讀 4279

題目描述:對於乙個十進位制數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...