EXCEL中怎样把十进制数转化为十六进制数??

2024-11-03 10:47:10
推荐回答(4个)
回答(1):

=LOOKUP(INT(A1/16/16/16),ROW($1:$16)-1,{"";1;2;3;4;5;6;7;8;9;"A";"B";"C";"D";"E";"F"})&LOOKUP(MOD(INT(A1/16/16),16),ROW($1:$16)-1,{0;1;2;3;4;5;6;7;8;9;"A";"B";"C";"D";"E";"F"})&LOOKUP(INT(MOD(A1/16,16)),ROW($1:$16)-1,{0;1;2;3;4;5;6;7;8;9;"A";"B";"C";"D";"E";"F"})&LOOKUP(MOD(A1,16),ROW($1:$16)-1,{0;1;2;3;4;5;6;7;8;9;"A";"B";"C";"D";"E";"F"})这个公式吧,看上去复杂了点。A1单元格,公式复制一下就行了,改里面的A1成你的单元格就行了。lookup row mod这些函数低版本应该有的吧。5位数十进制转16进制。大了恐怕还要改一下。

回答(2):

假设你的16进制数据在A列,你可以在B列用下面的公式:=HEX2DEC(A1)将光标移到该公式单元格的右下角,当光标变为十字时,按下鼠标左键向下拖动,公式即向下复制。则A列的数字均被转换为10进制了。

回答(3):

=DEC2HEX(A1)

回答(4):

同时按Alt和F11进入VB界面,点菜单上的插入,模块,在右边窗口粘贴以下代码:
Function DECtoHEX(a As Integer) As String
Dim myABC(1 To 16) As String
Dim i, j As Byte
Dim x As Long
For i = 1 To 9
myABC(i) = i
Next i
For i = 10 To 15
myABC(i) = Chr(55 + i)
Next i
myABC(16) = 0
DECtoHEX = ""
j = Int(Log(a) / Log(16))
x = a
For i = j To 1 Step -1
DECtoHEX = DECtoHEX & Application.WorksheetFunction.Index(myABC, Int(x / 16 ^ i))
x = x - Int(x / 16 ^ i) * 16 ^ i
Next i
DECtoHEX = DECtoHEX & IIf(x = 0, 0, Application.WorksheetFunction.Index(myABC, x))
End Function

回到Excel,你就有了函数 =dectohex(a1)
a1就是你的单元格。