C语言经典习题100练----操作符的讲解及异或操作符应用

例题1.给出两个整型变量,将两个值的内容进行互换;

**#include<stdio.h>
int main()
{
int a=0;
int b=0;
int temp=0;      // temp 临时变量
printf("Please enter two numbers:");
scanf("%d %d",&a,&b);
printf("a=%d, b=%d",a,b);
a=temp;  // 将a 赋值给temp 临时变量
b=a;     //a 空了之后将b赋给 a
temp=b;   //b 空了之后将 temp游赋值给b 
return 0;
}      // 创建临时变量,成功交换;

例题2. 在不建立临时变量的情况下,将交换两个数的内容;
第一种解法;看代码:

#include<stdio.h>
int main()
{
int a;
int b;
printf("Please enter two numbers :");
scanf("%d,%d", &a,&b);
a=a+b;
b=a-b;   //a被赋值给a+b;a+b-b=a;
a=a-b;  // a b 成功互换
printf("a=%d,b=%d", a,b);
return 0
}

第二种解法;看代码:

#include<stdio.h>
int main()
{
int a=0;
int b=0;
printf(“Please enter two numbers:");
scanf("%d,%d",&a,&b);
a=a^b;    // ^ 异或操作符
b=a^b;
a=a^b;
printf("a=%d,b=%d",a,b);
return 0;
}

操作符的分类有;
①.算术操作符
②.移位操作符
③.位操作符
④.赋值操作符
⑤.单目操作符
⑥.关系操作符
⑦.逻辑操作符
⑧.条件操作符
⑨.逗号表达法
下标引用、函数调用、结构成员;

异或操作符属于位操作符;
& : 按位与
|: 按位或
^: 按位或(异或)
引用上述的代码我们来仔细的分析下:

a=a^b;    // ^ 异或操作符
b=a^b;
a=a^b;

异或的操作属于在二进制数值上的操作:
人们经常使用的是十六进制,但计算机主要都是由开关元件构成,故只能识别0和1构成的二进制代码;
二进制数:0000 十进制: 0;
0001 1;
0010 2;
0011 3;
假如现在a=1;
b=2; 在二进制上的操作对应的就是0001 与 0010之间的操作;
a= a^b=0001 ^0010= 1100 (相同取1不同的取零)
a=1100;
b=a^b; 1100 ^ 0010=0001
a=a ^ b; 1100 ^0001= 0010 // 成功互换;

很多人可能对进制比较感兴趣,那么下篇文章我会更新关于有关进制互换的问题;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值