位运算应用2

来源:互联网 发布:图像识别传感器 淘宝 编辑:程序博客网 时间:2024/06/04 18:48

  1.从键盘上输入1个正整数给int变量num,输出由8~11位构成的数(从低位、0号开始编号)。

#include <iostream.h>
#include <stdio.h>

void main()
{
 int num, mask, i;
 cout<<"Input a integer number:";
 cin>>num;
 mask = 1<<15;       /*构造1个最高位为1、其余各位为0的整数(屏蔽字)*/
 cout<<num;
 for(i=1;i<=16;i++)
 {
  putchar(num&mask ? '1':'0');  /*输出最高位的值(1/0)*/
  num<<=1;                       /*将次高位移到最高位上*/
  if(i%4==0)
  {
   putchar(',');             /*四位一组,用逗号分开*/
  }
 }
 cout<<"/bB/n";
}

2.从键盘上输入1个正整数给int变量num,按二进制位输出该数。

#include <iostream.h>
void main()
{
 int num, mask;
 cout<<"Input a integer number:";
 cin>>num;
 num>>=8;           /*右移8位,将8~11位移到低4位上*/
 mask = ~(~0 << 4); /*间接构造1个低4位为1、其余各位为0的整数*/
 cout<<"result=0x"<<(num&mask)<<endl;
}

原创粉丝点击