給一道nk的例題
通常我們有可能採取,先將十進位制轉化為二進位制,然後按位求和再轉化為十進位制的方法,但是按位求和又需要用到大數加法和大數乘法,非常不方便,其實進製轉化,從m進製,轉化到n進製我們可以統一有一種形式進行,10進製轉2進製,我們可以除2取餘法,2進製轉化為十進位制,我們同樣可以除2取餘法,具體函式如下,只要稍微加上》10的情況,該函式可以完成任意進製之間的轉化。
//將n進製的s轉化為m進製
string convert
(int n, string s,
int m)
while
(s.size()
>
0&& s[0]
=='0'
) s = s.
substr(1
);if(mod !=
0)r.
push_back
(mod +
'0')
;else r.
push_back
('0');
}return r;
}
這道題的題解
//將n進製的s轉化為m進製
string convert
(int n, string s,
int m)
while
(s.size()
>
0&& s[0]
=='0'
) s = s.
substr(1
);if(mod !=
0)r.
push_back
(mod +
'0')
;else r.
push_back
('0');
}return r;
}int
main()
}
大數進製轉換
對於數值不是很大可以直接表示的數,以求10進製數11的2進製表示為例,我們可以使用如下的方法直接進行進製轉換 但是對於較大的數如1000位的數 數字有1000個,不是1000位元組 我們無法直接表示,因此不能直接得出,但是我們可以將上述過程分解。觀察上述運算,其實是經過了4次除法 11 2,5 2,...
大數進製轉換
進製轉換的一些筆記,由淺入深,通過複習得到的一些感悟,寫寫 先寫個最簡單的,十進位制轉二進位制 北郵機試 大家都知道,資料在計算機裡中儲存是以二進位制的形式儲存的。有一天,小明學了c語言之後,他想知道乙個型別為unsigned int 型別的數字,儲存在計算機中的二進位制串是什麼樣子的。你能幫幫小明...
「大」資料的進製轉換
將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。多組資料,每行為乙個長度不超過30位的十進位製非負整數。注意是10進製數字的個數可能有30個,而非30bits的整數 每行輸出對應的二進位制數。985211 1126 1111011001 11010011 10001100110 由...