我正在通过UDP设计可靠的数据传输,其中在UDP数据缓冲区中是一个字符数组,在我的前2个字节中,我必须放置像00010000 ....等等,我想要知道如何实现这一目标。如果您需要任何信息,请告诉我,提前感谢您的帮助,我真的很感激
答案 0 :(得分:1)
编写一个将数字转换为字符串的函数(字符数组) 脚步 : 1.将整数除以2并将模数值存储在字符数组中。 2.使用整数减去商值,并将结果存储在同一个整数中 3.继续执行步骤1和2,直到整数值变为零。
希望这是简单的转换程序
答案 1 :(得分:1)
您是否在问“如何将[u] int-stream转换为字节串?”
然后你可以试试这个:
1. Pick next integer x = uint[i]
2. Get four bytes out of it as
b4 = x & 0xFF000000
b3 = x & 0x00FF0000
b2 = x & 0x0000FF00
b1 = x & 0x000000FF
3. Write the four bytes into the stream s, e.g.
s << b4 << b3 << b2 << b1;
4. i += 1
5. Go to 1
答案 2 :(得分:0)
或使用更通用的函数将单个位写入缓冲区(char数组) `
void setBitAt( char* buf, int bufByteSize, int bitPosition, bool value )
{
if(bitPosition < sizeof(char)*8*bufByteSize)
{
int byteOffset= bitPosition/8;
int bitOffset = bitPosition - byteOffset*8;
if(value == true)
{
buf[byteOffset] |= (1 << bitOffset);
}
else
{
buf[byteOffset] &= ~(1 << bitOffset);;
}
}
}
`