gpt4 book ai didi

c++ - 如何将二进制表示字节转储为十进制字符串?

转载 作者:行者123 更新时间:2023-11-28 08:25:45 25 4
gpt4 key购买 nike

下面是十六进制转储函数,但我需要的是十进制转储。

void DumpBytes(unsigned char* inputBytes,int inputBytesLength,char* ouputString)
{
unsigned char const Hex[] = "01234567890abcdef";
for (int i = 0; i < inputBytesLength; i++)
{
unsigned char binByte = inputBytes[i];
ouputString[2*i] = (Hex[(binByte & 0xf0) >> 4]);
ouputString[2*i + 1] = (Hex[binByte & 0x0f]);
}
}

那么,如何将字节转储为十进制字符串而不是十六进制字符串。提前致谢!

最佳答案

字节完全适合 2 个十六进制字符,但十进制最多可以占用 3 个字符 (0 - 255),并且将它们存储在没有空格的字符串中并不是那么整洁。您可能只想直接用空格打印出来:

for (int i = 0; i < inputBytesLength; i++)  
cout << (int)inputBytes[i] << ' ';

如果您确实想将它们存储在一个字符串中,这绝对是可能的,并且与现有代码非常相似:

ouputString[3*i] = '0' + binByte / 100;
ouputString[3*i + 1] = '0' + (binByte / 10) % 10;
ouputString[3*i + 2] = '0' + binByte % 10;

关于c++ - 如何将二进制表示字节转储为十进制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4129879/

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