C中的十六进制到二进制转换显示错误的输出

时间:2017-01-22 17:36:34

标签: c binary hex

我试图将64位普通十六进制文本转换为二进制文件。您可以在下面的代码中看到我已将class Person(Document): name = StringField() address = ListField(DocumentField(Address)) city1 = Address(city='City1') session.save(ad) city2 = Address(city='City2') session.save(city2) person = Person(name='Ali', address=[city1, city2]) session.save(person) plain_Text64指定为全局变量。但是在执行函数binary_Plain_Text64之后,hexToBin的值应该是给定64位纯文本的新二进制值。不幸的是,我得到了其他一些。我在binary_Plain_Text64函数本身中打印了binary_Plain_Text64的值,它完美无缺。任何人都可以帮助我吗?

hexToBin

1 个答案:

答案 0 :(得分:1)

每次在

中覆盖目标数组的相同4个元素
binary_Plain_Text64[k] = hexDigitToBinary[j][k];

我建议使用一个单独的索引变量,在每次使用后递增,例如

int index = 0;
// ...
binary_Plain_Text64[index++] = hexDigitToBinary[j][k];

同样由@ J.Piquard评论,一个数组的输入太短,因为没有字符串终止符的空间

char plain_Text64[16]={};

不要吝啬您的用户输入字符串分配,并尝试限制其输入。