gpt4 book ai didi

c - htonl 打印垃圾值

转载 作者:行者123 更新时间:2023-12-03 11:50:43 26 4
gpt4 key购买 nike

变量“值”是 uint32_t

    value = htonl(value);

printf("after htonl is %ld\n\n",value);

This prints -201261056

value = htons(value);

printf("after htons is %ld\n\n",value);

This prints 62465

请指出可能是什么原因?

最佳答案

我猜你输入的是 500,对吧?

500 是 2**8+2**7+2**6+2**5+2**4+2**20x00 0x00 0x01 0xF4 小端顺序。

TCP/IP 使用大端。所以在 htonl 之后,序列是 0xF4 0x01 0x00 0x00

如果将其打印为有符号整数,由于第一个数字为 1,则为负数。负数视为补数,取值为-(2**27 + 2**25+2**24+2**23+2**22+2**21+2**20+ 2**19+2**18+2**17+2**16) == -201261056

关于c - htonl 打印垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12970461/

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