首页 > 其他 > 详细

位运算27

时间:2019-12-20 16:21:06      阅读:104      评论:0      收藏:0      [点我收藏+]

//”异或“运算符
//^当对应的二进制数相异的时候结果为1,相同的时候为0;
/*#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(){
 int a, b;
 unsigned result;
 printf("please input a:");
 scanf("%d", &a);
 printf("plaese input b:");
 scanf("%d", &b);
 printf("a=%d,b=%d", a, b);
 result = a^b;
 printf("\na^b=%u\n", result);
 system("pause");
 return 0;
  
}
//循环移位
#define  _CRT_SECURE_NO_WARNINGS//循环左移
#include<stdio.h>
#include<stdlib.h>
int left(unsigned value, int n){
 unsigned z;
 z = (value >> (32 - n) | value << n);
 return z;
}
int main(){
 unsigned a;
 int n;
 printf("plaese input a:\n");
 scanf("%o", &a);
 printf("plaese input n:\n");
 scanf("%d", &n);
 printf("the result is %o:\n", left(a, n));
 system("pause");
 return 0;
}*/
#define  _CRT_SECURE_NO_WARNINGS//循环右移
#include<stdio.h>
#include<stdlib.h>
int left(unsigned value, int n){
 unsigned z;
 z = (value <<(32 - n) | value >> n);
 return z;
}
int main(){
 unsigned a;
 int n;
 printf("plaese input a:\n");
 scanf("%o", &a);
 printf("plaese input n:\n");
 scanf("%d", &n);
 printf("the result is %o:\n", left(a, n));
 system("pause");
 return 0;
}

//位运算操作符
//&这是与运算符对应二进制位均为一时,结果才为一,否则就是0;
/*#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(){
 unsigned result;
 int a, b;
 printf("please input a;");
 scanf("%d", &a);
 printf("please input b:");
 scanf("%d", &b);
 printf("a=%d,b=%d", a, b);
 result = a&b;
 printf("\na&b=%u\n", result);
 system("pause");
 return 0;
}
//"或“运算符|
//只要对应两个二进制有一个位一,结果就为一,
#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(){
 unsigned result;
 int a, b;
 printf("please input a;");
 scanf("%d", &a);
 printf("please input b:");
 scanf("%d", &b);
 printf("a=%d,b=%d", a, b);
 result = a|b;
 printf("\na|b=%u\n", result);
 system("pause");
 return 0;
}
//”取反“运算符
//~
#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(){
 unsigned result;
 int a;
 printf("please input a:");
 scanf("%d", &a);
 printf("a=%d", a);
 result = ~a;
 printf("\n~a=%o\n", result);
 system("pause");
 return 0;
}
//左移一位相当于乘以2左移两位相当于乘以4
//左移符号<<
#include<stdio.h>
#include<stdlib.h>
int main(){
 int a = 15;
 a = a << 2;
 printf("the result1 is:%d\n", a);
 a = a << 3;
 printf("the result2 is:%d\n", a);
 system("pause");
 return 0;
}//左边高位丢去,右边地位补0;
*/
//右移动时,要注意正负数的问题,当为正数的时候高位补0,为负数的时候高位时补0还是1,取决于编译系统
#include<stdio.h>
#include<stdlib.h>
int main(){
 int a = 30;
 int b = -30;
 a = a >> 3;
 b = b >> 3;
 printf("a=%d\n", a);
 printf("b=%d\n", b);
 system("pause");
 return 0;
}

位运算27

原文:https://www.cnblogs.com/yuzhenghan/p/12073308.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!