mfc一个字符型是占8个位,这8个位是二进制0,1的组合排列,那如何将这8位按顺序两个两个取出来,
mfc一个字符型是占8个位,这8个位是二进制0,1的组合排列,那如何将这8位按顺序两个两个取出来,作为4对。这4对是00,01,10,11。现在怎么把这4对转化为一个十进...
mfc一个字符型是占8个位,这8个位是二进制0,1的组合排列,那如何将这8位按顺序两个两个取出来,作为4对。这4对是00,01,10,11。现在怎么把这4对转化为一个十进制的数,也就是0,1,2,3?
展开
1个回答
展开全部
用按位与和移位可以取出需要的位,用 %x 输出格式得 16 进制结果,用 %d 格式输出得 10 进制结果。c 语言完整程序如下。
#include<stdio.h>
#include<stdlib.h>
int main(){
char a=0x1b;
int i,b[4];
printf("a=%#x\n",a);
b[0]= a >> 6;
b[1]= (a & 0x30) >>4;
b[2]= (a & 0x0c ) >> 2;
b[3]= a & 0x03;
for (i=0;i<4;i++) printf("0x%02x - %d\n",b[i]);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main(){
char a=0x1b;
int i,b[4];
printf("a=%#x\n",a);
b[0]= a >> 6;
b[1]= (a & 0x30) >>4;
b[2]= (a & 0x0c ) >> 2;
b[3]= a & 0x03;
for (i=0;i<4;i++) printf("0x%02x - %d\n",b[i]);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询