若有 unsigned short a = 0x1234,b = 0x5678, 获取a的高字节,b的低字节组合成新值,结果为:0x1278

/*
若有
unsigned short a = 0x1234,b = 0x5678,
获取a的高字节,b的低字节组合成新值,结果为:0x1278
*/

#include <stdio.h>

int main(void)
{
	unsigned a, b;
	unsigned t_up, t_down;
	printf("enter two unsigned number:\n");
	scanf("%x%x", &a, &b);
	t_up = a & (~0 << 8);
	printf("t_up:%#x\n", t_up);
	t_down = b & ~(~0 << 8);
	printf("t_down:%#x\n", t_down);
	printf("a的高字节和b的低字节合成的值为:%#x\n", t_up + t_down);
	return 0;
}


/*
enter two unsigned number:
1234 5678
t_up:0x1200
t_down:0x78
a的高字节和b的低字节合成的值为:0x1278
*/

你可能感兴趣的:(若有 unsigned short a = 0x1234,b = 0x5678, 获取a的高字节,b的低字节组合成新值,结果为:0x1278)