[討論] 10進位=>16進位轉換之問題已回收

看板MATLAB作者 (老馮)時間16年前 (2008/09/30 00:20), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串1/2 (看更多)
程式碼如下: function s=dec16bin(n) s=[]; while n>1 s=[mod(n,16) s]; n=floor(n/16); end if n==1 s=[n s]; end return 跑出來的正確無誤! 輸入 1時,輸出 1 輸入 2時,輸出 2     。     。 輸入 9時,輸出 9 輸入10時,輸出10     。     。 輸入15時,輸出15 輸入16時,輸出 1  0 輸入17時,輸出 1  1     。     。 輸入25時,輸出 1  9 輸入26時,輸出 1 10 那。。。要怎麼把程式碼中間再插入一個小程式 把10變A,11變B,12變C,13變D,14變E,15變F 就變成如下: 輸入 1時,輸出 1 輸入 2時,輸出 2     。     。 輸入 9時,輸出 9 輸入10時,輸出 A 輸入11時,輸出 B 輸入12時,輸出 C 輸入13時,輸出 D 輸入14時,輸出 E 輸入15時,輸出 F 輸入16時,輸出 1  0     。     。 輸入25時,輸出 1  9 輸入26時,輸出 1  A 輸入27時,輸出 1  B 謝謝囉!!感激不盡!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.32.118 ※ 編輯: johnfyj 來自: 134.208.32.118 (09/30 00:25)

09/30 00:35, , 1F
直接使用dec2hex即可
09/30 00:35, 1F

09/30 00:43, , 2F
回樓上,是這樣沒錯,但是輸入16後輸出為10,但1跟0沒分開!!
09/30 00:43, 2F

09/30 00:53, , 3F
你丟進dec2hex的值不可能超過15啊,不然就表示你function寫錯
09/30 00:53, 3F

09/30 09:48, , 4F
10進位的16在16進位裡是10哪裏有錯了......
09/30 09:48, 4F

09/30 10:56, , 5F
就像10進位的2在2進位裡是10那樣有哪邊錯了?
09/30 10:56, 5F

09/30 11:46, , 6F
G大,我是指johnfyi的程式,若不直接用dec2hex,而在程式內
09/30 11:46, 6F

09/30 11:47, , 7F
使用,因為他已經處理過一次,所以不應該出現大於15的值
09/30 11:47, 7F

09/30 11:48, , 8F
我不是指你說的使用 dec2hex 有錯 :)
09/30 11:48, 8F
文章代碼(AID): #18uG1L23 (MATLAB)
文章代碼(AID): #18uG1L23 (MATLAB)