【发布时间】:2013-12-03 04:35:27
【问题描述】:
我有一个文件,我从中读取行并操作字符串。
以下是其中几行的示例(如果您有兴趣,该文件是Intel's HEX format):
:10DE50003EDE179280DB0338D2C32202023CD2D3CB
:10DE600022021792A0DB0338E2C32202023CE2D373
:10DE7000220292533EDEB0906400C4FF022082432F
:10DE80003EDE3741324190C3B8240013FDDBFF056D
:10DE900057494D453420D0D88CDEFDDB8FDEFF03A3
有小伙伴建议我创建一个数组,以前4:7字节为索引,EG,DE50,然后用剩下的16个字节作为数据(DE50后面的00不用,最后一个字节不用)。他说我可以使用 HEX 并将比如说 10 添加到 DE50 以获取 DE5A,从而找到与该索引关联的字节。问题是,我想不出办法做到这一点。甚至可能吗?这将允许我通过知道非常强大的 HEX 索引来处理我想要的任何字节。
谢谢!
【问题讨论】:
-
字符 4:7 是
E50,而不是DE50。您可能指的是字符 3:7?此外,字符 3:7 代表字节 1:3,而不是字节 3:7(因为每个 pair 十六进制字符代表一个字节,当然每个字符的开头都有一个冒号)。最后,剩下 36 个字符或 18 个字节,而不是 16 个。 -
同时,你确定你应该跳过最初的
10吗?还是下面的00?我不知道“英特尔的 HEX 格式”是什么意思,但总的来说,32 位索引/地址/等。更常见的不是 16 位数字,前面有 8 位填充符,后面有 8 位填充符。 -
@abarnert,
10和00具有特殊含义。我将它链接到维基百科页面。 -
OK,最后一个字节也有特殊含义(校验和)。