進製轉換的簡單運算

2021-08-20 10:38:36 字數 1089 閱讀 6273

常見的進製轉換就是十進位制、二進位制、八進位制、十六進製制之間的轉換,那麼如果給你乙個等式,讓你判斷在哪種進製下該等式成立?這型別的題該怎麼求解。接下來通過兩個例題講解一下:

例1.   如果等式 15*4=112 成立,那麼用了下列哪一種進製?

a. 6      b. 7       c. 8        d. 9

第一種比較笨的辦法就是將選項帶入,把15、4、112分別轉換,看哪乙個成立。

第二種方法就是將個位數字相乘,然後對進製取餘,若餘數與等式右邊的結果值的各位相等,那麼就是用了該進製。

15的個位數是5,將5*4,得20,那麼20再分別對6、7、8、9取餘,112的個位數是2,若餘數等於2,那麼就是用了該進製,顯而易見,20只有對6取余才是2,所以這道題的答案是a選項。

例2.   假設在n進製下,等式 567*456=150216 成立,求n的值。

a. 9       b. 10       c. 12          d. 18

按照例1中的第一種方法求解顯然不現實,運算量太大,所以這題用第二種方法求解。

567與456的個位數相乘得42,那麼42對9、10、12、18分別取餘,只有對10取餘的結果值不為6,所以只能排除b選項,然後我們就需要對十位進行這樣的運算,那麼上面的等式就可以表示為:

(5*n^2+6*n+7) * (4*n^2+5*n+6) = 1*n^5+5*n^4+0*n^3+2*n^2+1*n+6    將等式化簡得:

20*n^4+25*n^3+30*n^2+24*n^3+30*n^2+36*n+28*n^2+35*n+42 = n^5+5*n^4+2*n^2+n+6   繼續化簡得:

20*n^4+49*n^3+88*n^2+71*n+42= n^5+5*n^4+2*n^2+n+6    (1)

(1)的兩邊同時對n取餘:

42%n = 6%n     (2)                (因為只能排除乙個選項,所以還要繼續對下一位取餘)

(2)的兩邊同時對n^2取餘:

(71*n+42)%n^2 = (n+6) %n^2     化簡得:

(71+42/n)%n = (1+6/n)%n  = 1     (3)

所以可以求出該題的答案是12。

位運算和進製轉換

位運算指的是對二進位制進行的計算處理。主要有 與 或 異或 求反 其特徵為 都是1的時候才是1 如 13 7 計算過程為 13的二進位制 1101 7的二進位制 0111 得到結果 0101 轉換成10進製則是5 計算過程為 1101 0111 按照或運算得到結果是 1111 轉化成10進製為 15...

大數運算之進製轉換

大數的之間的進製轉換不能簡單的用取餘法來做,這樣會導致溢位。以牛客網的這道題10進製 vs 2進製 為例,題目給的數字已經達到了1000位,即使用long long型別也沒辦法儲存,所以要用字元陣列來儲存。然後用模擬手算除法的方式來進行進製轉換。如下 includeusing namespace s...

位運算轉換二進位制 進製轉換

普通十進位制轉換二進位制 1.通過不斷 2 和 2 得到用 1 0表示的數存進陣列 但是得到的是倒序 2.將陣列裡面的值倒序輸出再存入新的陣列即可 其他進製轉換同理 但是這種方法複雜且 較長 includeint main int count1 0 for int i count 1 i 0 i f...