gpt4 book ai didi

c - 在 C 语言中向 UUEncoder 添加空填充

转载 作者:太空宇宙 更新时间:2023-11-04 02:46:06 31 4
gpt4 key购买 nike

我知道我即将完成这个 UUEncoder 函数;我将使用它与嵌入式设备进行通信。但是对于我的生活,我无法弄清楚如何在最后正确插入空填充字符。

我一直在尝试遵循示例 here .

void encode(unsigned char fileData_Hex_String[], int hexDataCharCount)
{
unsigned char UUE_Encoded_String[MAX_SIZE];
unsigned char b[2];
unsigned char d[3];
int UUE_Encoded_String_Index = 0;

hexDataCharCount =7;

for(int hexDataIndex = 0; hexDataIndex < hexDataCharCount; hexDataIndex)
{
// Load chars or nulls
for (int i = 0; i < 3; ++i)
{
b[i] = fileData_Hex_String[hexDataIndex];
printf("%i\n", (hexDataIndex - hexDataCharCount));
if ((hexDataIndex - hexDataCharCount) > 0)
{
b[1] = '\n';
b[2] = '\n';
break;
}
hexDataIndex++;
}


// UUEncode
d[0] = (((b[0] >> 2) & 0x3f) + ' ');
d[1] = ((((b[0] << 4) | ((b[1] >> 4) & 0x0f)) & 0x3f) + ' ');
d[2] = ((((b[1] << 2) | ((b[2] >> 6) & 0x03)) & 0x3f) + ' ');
d[3] = ((b[2] & 0x3f) + ' ');

// Put the UUEncoded chars into their own string.
for (int i = 0; i < 4; i++)
{
UUE_Encoded_String[UUE_Encoded_String_Index] = d[i];
printf(" 0x%2x \n", UUE_Encoded_String[UUE_Encoded_String_Index]);
UUE_Encoded_String_Index++;
}
}
}

一切正常,除了我在 0x48 和 0x2A 末尾有两个不需要的字符。

最佳答案

\n 不是 null 它是换行符。如果你把

b[1] = 0;
b[2] = 0;

最后两个字节将是 0x20 0x20。但是如果你这样写循环你的代码会更灵活

// Load chars or nulls
for (i = 0; i < 3; ++i)
{
if (hexDataIndex < hexDataCharCount)
b[i] = fileData_Hex_String[hexDataIndex];
else
b[i] = 0;
hexDataIndex++;
}

关于c - 在 C 语言中向 UUEncoder 添加空填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27261701/

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