gpt4 book ai didi

c# - 奇怪的 Notepad++ HEX 编辑器插件

转载 作者:太空狗 更新时间:2023-10-29 21:08:14 31 4
gpt4 key购买 nike

目标是将字节数组写入文件。我有一些字节的字节数组 fits[] 然后:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace _32_to_16
{
class Program
{
static void Main(string[] args)
{
byte[] fits = File.ReadAllBytes("1.myf");
byte[] img = new byte[fits.Length / 2];
for (int i = 0; i < fits.Length; i += 4) //Drops 2 high bytes
{
img[i/2] = fits[i + 2];
img[i/2 + 1] = fits[i + 3];
}
File.WriteAllBytes("new.myf", img);
}
}
}

在写入文件之前 img[] 具有相同的值:

  • img[0]=0x31
  • img[1]=0x27
  • img[2]=0x31
  • img[3]=0xe2
  • 等等...

写入文件后,在 HEX 编辑器中我看到了

  • 00000000:31 27 31 3f 和其他错误值。

有时,使用其他 fits[] 值,img[] 数组会正确写入文件。我做错了什么?
测试文件 1.myf(产生错误结果)https://www.dropbox.com/s/6xyf761oqm8j7y1/1.myf?dl=0测试文件 2.myf(正确写入文件)https://www.dropbox.com/s/zrglpx7kmpydurz/2.myf?dl=0

我简化了代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace _32_to_16
{
class Program
{
static void Main(string[] args)
{
byte[] img_correct = new byte[8] { 0xbd, 0x19, 0xbd, 0x72, 0xbd, 0x93, 0xbd, 0xf7 };
File.WriteAllBytes("img_correct.myf", img_correct);

byte[] img_strange = new byte[8] { 0x33, 0x08, 0x33, 0xac, 0x33, 0xe3, 0x33, 0x94 };
File.WriteAllBytes("img_strange.myf", img_strange);
}
}
}

在十六进制编辑器 img_correct.myf 中看起来像这样:bd 19 bd 72 bd 93 bd f7

在十六进制编辑器 img_strange.myf 中看起来像这样:33 08 33 3f 3f 3f

最佳答案

您正在使用来自 Notepad++ 的 HEX-Editor 插件,它似乎有一个 problem reading binary files .

尝试使用另一个十六进制编辑器,它应该显示正确的值。

这是 HxD 的屏幕截图和 HEX-Editor 显示相同的文件 as you can see here

关于c# - 奇怪的 Notepad++ HEX 编辑器插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35881288/

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