ch&0x0f这是什么意思啊
#include<stdio.h>intmain(){charch;printf("ch=");scanf("%c",&ch);printf("%d,%d\n",(ch&...
#include<stdio.h>
int main()
{
char ch;
printf("ch=");scanf("%c",&ch);
printf("%d,%d\n",(ch&0xf0)>>4,ch&0x0f);
} 展开
int main()
{
char ch;
printf("ch=");scanf("%c",&ch);
printf("%d,%d\n",(ch&0xf0)>>4,ch&0x0f);
} 展开
1个回答
展开全部
这个程序是将一个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进制数.
(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进制数.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询