陣列(九) 十進位制轉換為十六進製制

2021-08-10 02:57:39 字數 1358 閱讀 1740

方法一:

1、以60為例:(假設為32位)

60 除以 16 商 3 餘。。。。。。。。12

3  除以 16 商 0 餘。。。。。。。。。3

2、然後將餘數倒過來,兩位數的餘數則轉化為字母。

數字與字母對應:

10-----a

11-----b

12-----c

13-----d

14-----e

15-----f

3、60的十六進製制為:0000003c

方法二:

通過&運算和 右移運算來求解:

步驟如下:

1、先寫出60的32位的二進位制;

2、為了求出60的最後四位,需要和15的二進位制進行&運算,如下圖的第一步;

3、然後將60的二進位制右移四位,再與15的二進位制進行&運算,又可以求出最後四位;

4、如此,迴圈第3步,就可以每四位對應的十六進製制;

5、由於當數字大於9時用字母a,b,c,d,e,f來表示;所以需要把大於9的數字轉換為對應的ascii碼值;

6、轉換公式為:(char)(temp-10+'a'),其中temp為10,11,12,13,14,15這幾個值中的乙個;

7、下圖為上述步驟的解析,以及程式;

/** 十進位制--->十六進製制

*/public static void tohex(int num)

system.out.println(ss.reverse()); }

public static void tohex_2(int num);

char arr=new char[8];

int pos=arr.length;

while(num!=0)

// system.out.println("pos="+pos);

for(int x=pos;x

注意:一般情況下右移只需要兩個大於號即 >>,但此程式寫了三個》,是因為如果是負數的時候,它的首位是 1,不論怎麼右移都是1,故》表示無符號右移,即不考慮符號的影響。

輸出為:0000003c

華為初級 十六進製制轉換為十進位制

描述 寫出乙個程式,接收乙個十六進製制的數值字串,輸出該數值的十進位制字串。知識點 字串,迴圈,函式,指標練習階段 初級執行時間限制 10sec記憶體限制 128mbyte輸入 輸入乙個十六進製制的數值字串。輸出 該數值的十進位制字串。樣例輸入 0xa樣例輸出 10 源程式 include usin...

matlab中將十六進製制轉換為十進位制方法

matlab中將十六進製制轉換為十進位制方法 a textread c a.txt s 以字元形式開啟檔案 alpha hex2dec a 16進製制轉化為10進製數,存入alpha矩陣 16進製制轉10進製 轉化方法二 wenjian ming,lujing ming uigetfile c a....

十進位制轉十六進製制(進製轉換)

問題描述 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,以此類推...