初學java進位制轉換方面補充學習

酸酸草發表於2021-01-14
進位制轉換:

基礎:

​ 二進位制用的數為:0/1

​ 八進位制用的數為:0/1/2/3/4/5/6/7

​ 十進位制用的數為:0/1/2/3/4/5/6/7/8/9

​ 十六進位制用的數為:0/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15

​ ->因為10以上的不好表示,10/11/12/13/14/15 用字母表示 a/b/c/d/e/f

​ ->因此十六進位制的數表示為:0/1/2/3/4/5/6/7/8/9/a/b/c/d/e/f

  • 二進位制轉換為十進位制
舉個例子:  a=100110;
則十進位制為 (2^0x0)+(2^1x1)+(2^2x1)+...+2^5x1=0+2+4+0+0+32=38
  • 八進位制轉換為十進位制
舉個例子:  a=345
則十進位制為  (8^0x5)+(8^1x4)+(8^2x3)=5+32+64x3=229
  • 十六進位制轉換為十進位制
舉個例子:  a=6af
則十進位制為  (16^0x15)+(16^1x13)+(16^2x6)=15+16x13+16x16x6=1759
  • 十進位制轉換為十六進位制 or 十進位制轉換為八進位制or十進位制轉換為二進位制
假設十進位制數為:   asdf/x              //x可以是16或8或2   看你轉換為什麼進位制
      asdf/x=?....a;
      if(?<x)  則   轉換後結果為?a
      if(?>x)  則   繼續往下除
      
      ?/x=??....b;
      if(?<x)  則   轉換後結果為??ba
      if(?>x)  則   繼續往下除
      
      ??/x=???....c;
      if(?<x)  則   轉換後結果為???cba
      if(?>x)  則   繼續往下除
      
後面不舉例子了; 通過十進位制為媒介, 可以實現四個進位制任意轉換;
      

萌新小白, 很可能一些方面寫的不對, 歡迎指正; 大家一起變得更強!

相關文章