ch&0x0f这是什么意思啊

来源:百度知道 编辑:UC知道 时间:2024/05/22 04:10:38
#include<stdio.h>
int main()
{
char ch;
printf("ch=");scanf("%c",&ch);
printf("%d,%d\n",(ch&0xf0)>>4,ch&0x0f);
}

这个程序是将一个8位字符的高4位和低4位分别求出并输出.
(ch&0xf0)里ch是你输入的字符,&按位与运算符,0xf0是8位掩码,这里将ch低4位掩出,>>是算术右移运算符,将已掩出低4位的值的低4位移出,只剩下高4位.
(ch&0x0f)原理同上,不过是将高4位掩出.
程序修改了下,这样看的更清楚:
#include<stdio.h>
int main()
{
char ch;
printf("ch=");scanf("%c",&ch);
printf("%x %x,%x\n",ch,(ch&0xf0)>>4,ch&0x0f);
}

输出的都是16进制数.