大哥 如何反过来啊 就是把2个4位合位一个8位~ 谢谢了 最好解释下啊 我学java的 c语言不是很了解
特别是结构体 ~~~我会给你追加分的 大哥~
是8位还是8字节,我那个刚开始想成8位了
追问字节吧 就是00110011(char) 变为0011(char) 和 0011(char)
追答你这是8位啊 8字节共64位的,可以用移位处理的,位段应该也行
#include
int main()
{
union
{
char ch;
struct
{
unsigned x:4;//低四位
unsigned y:4;//高四位
} bits;
} num;
printf("\n输入大小在 0 and 255间的整数:");
scanf("%d",&num.ch);
printf("ch=%x y=%x x=%x \n",num.ch,num.bits.y,num.bits.x);
num.bits.x=0x4;
num.bits.y=0x7;
printf("ch=%x y=%x x=%x \n",num.ch,num.bits.y,num.bits.x);
}
大哥 反过来怎么 算啊 就是俩个4位变一个8位
追答地下这不是吗?
num.bits.x=0x4;
num.bits.y=0x7;
printf("ch=%x y=%x x=%x \n",num.ch,num.bits.y,num.bits.x);
先给低四位赋值0x4,高四位赋值0x7,打印出来的num.ch不就是0x74吗?