在C ++中将String转换为十六进制小端格式

时间:2012-07-23 13:18:08

标签: string c++-cli hex int endianness

我有一个字符串2290348 我需要它显示为ACF22200(小端)

因为输入2290348是通过文本框中的表单传入的,所以我尝试将其作为字符串(例如this->textBox1->Text)读取并将其转换为int(例如Convert::ToInt32(this->textBox1->Text))。 之后,我通过ToString("x")将其转换为十六进制,我设法获得22F2AC 我添加了00到22F2AC并将0022F2AC仍然作为字符串 现在我被困在将0022F2AC转换为ACF22200

1 个答案:

答案 0 :(得分:1)

虽然仍然是int,但您可以使用例如htonl将其转换为" network"字节顺序。

#include <winsock2.h>

int main()
{
    unsigned int x = 0x22F2AC;
    printf("x = 0x%08x\n", x);
    printf("htonl(x) = 0x%08x\n", htonl(x));
    return 0;
}

上面的程序打印:

x = 0x0022f2ac
htonl(x) = 0xacf22200