gpt4 book ai didi

java - 这段代码如何生成该十六进制值?

转载 作者:行者123 更新时间:2023-12-01 11:34:37 27 4
gpt4 key购买 nike

任何人都可以“详细”解释一下这段代码如何创建一个如左图所示的 .cfg 文件吗?我想改变它,使它变得像正确的那样?

setLastFileInTNM(getTnmInstalledPath(), getLastPath());

private void setLastFileInTNM(String TNMConfigFilePath, String fileTobeSetInTNM) throws Exception {
//fileTobeSetInTNM += " ";
File file = new File(TNMConfigFilePath);
char[] dt = fileTobeSetInTNM.toCharArray();

char[] data = readFile(file);

int offset = 145;
int length = fileTobeSetInTNM.length();

int j = 0;
for (int i = 145; i < offset + length; i++) {
if (j == dt.length) {
break;
}
data[i] = dt[j];
j++;
}
data[offset + length] = (char) 0;//for seprating the rest
writeToFile(data, file);
readFile(file);
}

此代码在 .cfg 文件中写入一个地址。下图是在notepad++中比较两个.cfg文件。左边的是上面的代码,我想改变代码,使十六进制类型变成右边的图片。我应该如何更改代码?
enter image description here

最佳答案

右边的文字说

"D :\M D S 8 3 1 0 .he x ",而左侧的文字为

“D:\MDS 8310.hex 1 0 .hex”

这表明原始文件中数据的编码是每个字符 16 位,每隔一个字符留出空格,而在左侧,您只需将每个字符复制为一个字节,从而使文件名过于压缩。如果您想以这种低级风格执行此操作,只需添加行

data[++i] = 0x20; 

行后:

data[i] = dt[j];

并将 for 循环的上限增加到 offset + length * 2

我不明白为什么你的文件在第 29 行和第 6 行也被修改,但这可能取决于你的代码的其余部分。

关于java - 这段代码如何生成该十六进制值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30138893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com