最近公司在招聘開發工程師,想考察一下他們的基本功和常識。問了進製轉換的問題,有很多人就徹底懵逼了,其實進製轉換就是高中學習的排列組合的問題。
想必大家碰見過這樣的問題。有三個抽屜,現在又7種顏色的球若干。現要求每個抽屜必須放且只能放乙個球,問多少種放法。其實這就是每個抽屜都有7個選擇的機會,而他們相互之間是不會干擾的,所以他們的方法就是7x7x7個。而在不同的進製當中也是這樣的演算法,二進位制每乙個位置只能放0或1,任何兩位上存放的數值是不會相互受影響的,所以對於n位的二進位制數可以取值的個數就是2的n此冪,如果考慮符號位置以及補碼演算法,其取值範圍就是2的n-1次冪到2的n-1次冪-1。
對於m進製的n位所表示的具體數值大小具體是多少呢? 我們完全可以利用10進製演算法一樣的,也就是從右相左,從0開始計數,第幾位就是m的幾次乘以該位上的數字,這樣得到若干個數值,然後把這些數值加起來就是最終的結果。下面舉乙個例子:
比如 有19進製的數字 13464 . 那麼這個數字應該是多少呢?
從右向左開始計算依次為 4x(19的0次冪) 6x(19的1次冪) 4x(19的2次冪) 3x(19的3次冪) 1x(19的4次冪) 然後把這些數字加到一起就是了。
如果已知某乙個數字,我們想把他轉換成某個進製的數字該怎麼處理呢?只要用這個數字不斷地對進製進行求餘,然後把這些餘數從右向左排成一行就可以了。比如我們求123的7進製。
第一步 127 除以 7 = 17 餘 4
第二步 用 17 除以7 = 2 餘 3
第三步 2已經小於7(或2除以7 = 0 餘 2 )
將上述各個餘數排列起來即可。 234 就是最終的結果。
讀者在學習的時候可以利用integer 的靜態方法 static string tostring(int i, int radix) 和static int parseint(string s, int radix)
去驗證自己的練習結果。
進製轉換問題
基礎 進製轉換問題 easy time limit 1000ms memory limit 65536k total submit 271 accepted 153 description 若將乙個正整數n化為二進位制,在此二進位制數中,我們將數字1的個數多於數字0的個數的這類二進位制數稱為a類數,...
進製轉換問題
基礎 進製轉換問題 easy time limit 1000ms memory limit 65536k total submit 271 accepted 153 description 若將乙個正整數n化為二進位制,在此二進位制數中,我們將數字1的個數多於數字0的個數的這類二進位制數稱為a類數,...
進製轉換問題
一 引題 題目大意 a和b 兩個人一起吃飯,一共有 n道菜,從 0,1,n 1編號,菜按順序輪流上,a只能吃偶數編號的菜,即 0,2,4 b 只能吃奇數編號的的,每個人都可以選擇吃或不吃。每道菜對應乙個歡樂度 2 i i 0,1 n 1 現在知道 d 歡樂度 a b 的值,問他們兩總共吃了幾道菜?解...