我很期待把一些数据转换成实数的方法
下面是一个数据
的例子0400 0000 cf40 2761 d2ff 5552 ceff 5652
e0ff 5b52 e0ff 5b52 eaff 5f52 f4ff 5b52
eaff 5852 eeff 5752 f2ff 5952 eeff 5a52
d8ff 5452 d4ff 5652 caff 5452 ccff 5352
d2ff 5552 c2ff 5a52 ccff 5e52 e2ff 5652
eaff 5852 f0ff 5652 e8ff 5452 e8ff 5452
eaff 5552 deff 5a52 f0ff 5f52 faff 5b52
0a00 6152 0400 6352 f8ff 5f52 0000 5c52
f8ff 5952 0200 5452 0000 5452 f2ff 5952
f8ff 5a52 0400 5652 0400 5652 f2ff 5c52
经过一些调查,我发现似乎十六进制数据文件(或原始二进制格式)我尝试了许多方法,如十六进制编辑器和R和python的其他功能,但它不适合我
如果你对这些数据有任何想法,请告诉我!非常感谢!
您可以使用简单的python函数。我已经将Hexa存储在一个变量中。然后,您可以使用split函数在列表中转换十六进制,如下所示。要传输以数字表示的Hexa列表,请使用带有for循环的print函数。
1. For i.e. hex_string = "your hexa data"
2. For i.e. ist = (hex_string.split(" "))
查看下面的完整代码。
hex_string = "0400 0000 cf40 2761 d2ff 5552 ceff 5652 e0ff 5b52 e0ff 5b52
eaff 5f52 f4ff 5b52 eaff 5852 eeff 5752 f2ff 5952 eeff 5a52 d8ff 5452
d4ff 5652 caff 5452 ccff 5352 d2ff 5552 c2ff 5a52 ccff 5e52 e2ff 5652
eaff 5852 f0ff 5652 e8ff 5452 e8ff 5452 eaff 5552 deff 5a52 f0ff 5f52
faff 5b52 0a00 6152 0400 6352 f8ff 5f52 0000 5c52 f8ff 5952 0200 5452
0000 5452 f2ff 5952 f8ff 5a52 0400 5652 0400 5652 f2ff 5c52"
list = (hex_string.split(" "))
for i in list:
print(int(i,16))
在R
中,broman::hex2dec
函数将十六进制转换为十进制。
install.packages("broman")
library(broman)
dummy <- read.table(text = "0400 0000 cf40 2761 d2ff 5552 ceff 5652
e0ff 5b52 e0ff 5b52 eaff 5f52 f4ff 5b52
eaff 5852 eeff 5752 f2ff 5952 eeff 5a52
d8ff 5452 d4ff 5652 caff 5452 ccff 5352
d2ff 5552 c2ff 5a52 ccff 5e52 e2ff 5652
eaff 5852 f0ff 5652 e8ff 5452 e8ff 5452
eaff 5552 deff 5a52 f0ff 5f52 faff 5b52
0a00 6152 0400 6352 f8ff 5f52 0000 5c52
f8ff 5952 0200 5452 0000 5452 f2ff 5952
f8ff 5a52 0400 5652 0400 5652 f2ff 5c52", header = F)
apply(dummy, 2, hex2dec)
V1 V2 V3 V4 V5 V6 V7 V8
[1,] 1024 0 53056 10081 54015 21842 52991 22098
[2,] 57599 23378 57599 23378 60159 24402 62719 23378
[3,] 60159 22610 61183 22354 62207 22866 61183 23122
[4,] 55551 21586 54527 22098 51967 21586 52479 21330
[5,] 54015 21842 49919 23122 52479 24146 58111 22098
[6,] 60159 22610 61695 22098 59647 21586 59647 21586
[7,] 60159 21842 57087 23122 61695 24402 64255 23378
[8,] 2560 24914 1024 25426 63743 24402 0 23634
[9,] 63743 22866 512 21586 0 21586 62207 22866
[10,] 63743 23122 1024 22098 1024 22098 62207 23634
python中
data = [['0400', '0000', 'cf40', '2761', 'd2ff', '5552', 'ceff', '5652'],
['e0ff', '5b52', 'e0ff', '5b52', 'eaff', '5f52', 'f4ff', '5b52'],
['eaff', '5852', 'eeff', '5752', 'f2ff', '5952', 'eeff', '5a52'],
['d8ff', '5452', 'd4ff', '5652', 'caff', '5452', 'ccff', '5352'],
['d2ff', '5552', 'c2ff', '5a52', 'ccff', '5e52', 'e2ff', '5652'],
['eaff', '5852', 'f0ff', '5652', 'e8ff', '5452', 'e8ff', '5452'],
['eaff', '5552', 'deff', '5a52', 'f0ff', '5f52', 'faff', '5b52'],
['0a00', '6152', '0400', '6352', 'f8ff', '5f52', '0000', '5c52'],
['f8ff', '5952', '0200', '5452', '0000', '5452', 'f2ff', '5952'],
['f8ff', '5a52', '0400', '5652', '0400', '5652', 'f2ff', '5c52']]
for row in data:
for value in row:
value = int(value, 16)
print(data)
基本上,我不知道你是否希望它像那样呈现,所以我做了一个"矩阵"(如果你想要实际的术语,它是列表的列表,但它基本上只是一个矩阵)你的值。然后使用int()函数将其转换为十进制。
编辑:决定让它看起来更漂亮一点
data = [['0400', '0000', 'cf40', '2761', 'd2ff', '5552', 'ceff', '5652'],
['e0ff', '5b52', 'e0ff', '5b52', 'eaff', '5f52', 'f4ff', '5b52'],
['eaff', '5852', 'eeff', '5752', 'f2ff', '5952', 'eeff', '5a52'],
['d8ff', '5452', 'd4ff', '5652', 'caff', '5452', 'ccff', '5352'],
['d2ff', '5552', 'c2ff', '5a52', 'ccff', '5e52', 'e2ff', '5652'],
['eaff', '5852', 'f0ff', '5652', 'e8ff', '5452', 'e8ff', '5452'],
['eaff', '5552', 'deff', '5a52', 'f0ff', '5f52', 'faff', '5b52'],
['0a00', '6152', '0400', '6352', 'f8ff', '5f52', '0000', '5c52'],
['f8ff', '5952', '0200', '5452', '0000', '5452', 'f2ff', '5952'],
['f8ff', '5a52', '0400', '5652', '0400', '5652', 'f2ff', '5c52']]
for row in data:
string = ''
for value in row:
value = int(value, 16)
string = string + str(value) + ' '*(10-len(str(value)))
print(string)
输出:
1024 0 53056 10081 54015 21842 52991 22098
57599 23378 57599 23378 60159 24402 62719 23378
60159 22610 61183 22354 62207 22866 61183 23122
55551 21586 54527 22098 51967 21586 52479 21330
54015 21842 49919 23122 52479 24146 58111 22098
60159 22610 61695 22098 59647 21586 59647 21586
60159 21842 57087 23122 61695 24402 64255 23378
2560 24914 1024 25426 63743 24402 0 23634
63743 22866 512 21586 0 21586 62207 22866
63743 23122 1024 22098 1024 22098 62207 23634