gpt4 book ai didi

c - 将 4 个字符解释为整数

转载 作者:太空狗 更新时间:2023-10-29 15:32:37 24 4
gpt4 key购买 nike

我有一个返回 n 个随机字节的函数。为了进行测试,我希望它产生 4 个随机字节,然后将整数的 4 个字节分配为随机字节。我有一些有用的东西,但对于我想做的事情来说,语法似乎太多了。我只是想看看是否真的有必要,或者是否可以用更好的方式完成

注意:这是在 xv6 中完成的,没有涉及 include

的解决方案
int val0 = (((int)buf[0])&0xff);
int val1 = (((int)buf[1])&0xff);
int val2 = (((int)buf[2])&0xff);
int val3 = (((int)buf[3])&0xff);

int number = val0 | (val1<<8) | (val2<<16) | (val3<<24);

最佳答案

据我所知,您正在使用此 reference here 中的 gcc我们知道gcc support type punning through unions explicitly那么这可能是一个合理的解决方案:

union charToInt
{
char arr[sizeof(int)] ;
int x ;
} ;

int main()
{
union charToInt u1 = { .arr = "ab" } ; // or { .arr = "abcd" } if sizeof(int) == 4
}

然后 u1.x 将保存 int 值。我没有添加任何输出,因为我不确定您使用什么输出。

关于c - 将 4 个字符解释为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26824699/

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