excel处理16进制数据
我想在excel中处理16进制数据,数据格式大概是这样的
0x5A4C18000002C2966011405000310700418E09030F3A1316215151713819610002800408000000DFFB2B00006FDB00000000000022323439352C3046323922010000BA440000BA2800000000000000000100FE0D
我想求其中的某个比特位,比如5A4C=101101001001100 则第二位为0、第三位为1,然后把他们分别存在一列中,请问怎么处理 展开
excel处理16进制数据方法:
1、HEX2DEC函数
Function HexToDec(cell)
Dim hexStr As String
Dim hexVal As String
Dim decVal As String
hexStr = cell.Value
hexVal = Right(hexStr, Len(hexStr) - 2) ' 去掉"0x"前缀(即头两个字符),得到真正代表十六进制值的文本
On Error Resume Next ' 开启错误处理开关(因为文本内容不一定都满足十六进制格式,所以HEX2DEC函数转换时可能会出错)
decVal = Application.WorksheetFunction.Hex2Dec(hexVal) ' 十六进制 --> 十进制
If Err.Number = 0 Then '转换未出错
cell.Value = decVal
If cell.Value = "0" Then ' 将转换为十进制后值为0的单元格的字体变灰,以便区分
cell.Font.Color = RGB(200, 200, 200)
End If
End If
On Error GoTo 0 ' 关闭错误处理开关(在函数结尾处,可以忽略)
End Function
2、可利用HEX2BIN结合MID和MOD函数来求,如图:
比如数字在A2,在B2中求B1中对应位数的值可用公式:
=MID(HEX2BIN(MID($A2,CEILING(B$1/8,1)*2-1,2),8),MOD(B$1-1,8)+1,1)
请采纳答案,支持我一下。
我只能扬天长叹
这个真不会!