实验十四 位运算

u    实验目的

1、掌握按位运算的概念和方法,学会使用位运算符。

2、学会通过位运算实现对某些位的操作。

u    预习内容

见教材第十二章

u    实验重点

1、掌握按位运算的概念和方法,学会使用位运算符。

2、学会通过位运算实现对某些位的操作。

u    实验难点

学会通过位运算实现对某些位的操作。

u    实验内容

编写程序并上机运行:

1、编写一程序,检查所用的计算机系统的C编译在执行右移时是按照逻辑右移的原则,还是按照算术右移的原则进行操作。

2、编一个函数getbits,从一个16位的单元中取出某几位,用八进制数打印出来。

3、设计一个函数,使给出一个数的原码,能得到该数的补码。 

u    参考例题

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

#include  "stdio.h"

main()

{ int num, mask, i;

       printf("Input a integer number: ");

       scanf("%d",&num);

       mask = 1<<15;  /*构造1个最高位为1、其余各位为0的整数(屏蔽字)*/

      printf("%d=" , num);

      for(i=1; i<=16; i++)

         { putchar(num&mask ? ’1’ : ‘0’); /*输出最高位的值(1/0)*/

            num <<= 1;            /*将次高位移到最高位上*/

            if( i%4==0 ) putchar(‘,’);      /*四位一组,用逗号分开*/

        }

      printf("\bB\n");

    }       

 

程序运行情况:

Input a integer number:1000 ←┘

1000=0000,0011,1110,1000B

公告通知
教学日历
疑难留言
同学你好!对本课程有哪些建议?