位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。c语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。
1.输入一个float型数,以十六进制形式输出其32位机器数。
#include<stdio.h> void main() { float a; int *p; printf("input a float number:n"); scanf("%f",&a); p=(int *)&a; printf("%x",*p); }
2.从键盘输入一个二进制非负整数,屏幕上打印输出对应的十进制、八进制和十六进制数,要求输出的十六进制数中的英文字母为大写字母。
#include<stdio.h> void main() { int convertbinarytodecimal(long long n);//二进制转十进制的函数声明 long long n; printf("input a binary number:n"); scanf("%lld",&n);//从键盘读取一个二进制数 long long m; m=convertbinarytodecimal(n);//调用函数 printf("the number is %d in decimal.n",m);//输出十进制数 printf("the number is %o in octal.n",m);//输出八进制数 printf("the number is %x in hexadecimal.n",m);//输出十六进制数 } int convertbinarytodecimal(long long n) { int i=1,j,sum=0;//i表示位权,j表示每一次循环取出的尾数,sum表示转换的十进制数 while(n!=0) {//循环条件为n不等于0 j=n%10; sum+=j*i; n/=10; i*=2; } return sum; }
3.定义函数void dectobin(int a, char b[33]); 函数功能是将整数a转换为它对应的32位二进制机器数,将32位二进制机器数以字符串形式存于字符数组b(以’