开篇
比如:我想把一个char类型加一个short类型的值两个值保存在int类型,并且保存完后他们在int中能体现出来原来的值。
那么我们的题意大概就是,比如char a=0x12;short b=0x34;他们加完的值 是0x1234!那么怎么实现呢?答案是移位操作!
把char 类型或者short左移2位4位6位10位12位14位16位实现算法。(注:char范围:-0x80-0x7F,short范围:-0x8000-0x7FFF,int范围:-0x8000 0000-0x7FFF FFFF)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
char a=0x12;//10010
short b=0x34;//110100
<span style="color:#ff0000;">num=(int)(a<<8)+(int)(b);</span>
printf("a,b,num=%X\n",a,b,num);//4600 100011000000000
return 0;
}
结果
或者