gpt4 book ai didi

c - 在 C 中提取字节

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:16 26 4
gpt4 key购买 nike

我正在用 C 编写程序。我要提取字节。 un8 extractbyte (int r, int pos) 应该从数字 r 返回字节数 pos。例如,我使用作为输入:0x7788AABB。那么输出应该是:

Part number 0 is BB
Part number 1 is AA
Part number 2 is 88
Part number 3 is 77

我卡在了程序的最后一部分,我在评论中打了问号。这些行不正确,我对如何使其工作感到困惑......我现在得到的输出在每个部分都是 bb 。顺便说一句,我是 C 语言的新手。

#include <stdio.h>
#include <stdlib.h>

typedef unsigned int un32;
typedef unsigned char un8;

un8 extractbyte (un32 r, un8 pos);

int main ()
{
un32 number;
un8 k;

printf("Enter a number:\n");
scanf("%x",&number);

for (k=0; k<=3;k++)
printf ("Part number %d is: %x \n", k , extractbyte(number, k) );

return 0;
}

un8 extractbyte (un32 r , un8 pos)
{
un32 mask;
un32 size = pos*8;
un32; // ??
un8; // ??

return (un8) r; // ??
}

最佳答案

un8 extractbyte(un32 r, un8 pos)
{
return (r >> (8 * pos)) & 0xFF;
}

关于c - 在 C 中提取字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20958578/

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