普通网站建设,163企业邮箱官网,企业网站建设与营运计划书,免费app开发工具每天一篇博客#xff0c;卷死各位。 文章目录前言1. 算术操作符2. 移位进制位的表示移位操作符1. 》--左移操作符2. 《--右移操作符3.位操作符4.赋值操作符5.单目操作符6.关系操作符7. 逻辑操作符8.条件操作符9.逗号操作符总结前言
在c语言学习中操作符尤为重要#xff0c;而… 每天一篇博客卷死各位。 文章目录前言1. 算术操作符2. 移位进制位的表示移位操作符1. 》--左移操作符2. 《--右移操作符3.位操作符4.赋值操作符5.单目操作符6.关系操作符7. 逻辑操作符8.条件操作符9.逗号操作符总结前言
在c语言学习中操作符尤为重要而今天我们则是对操作符的详解以及介绍。我们会详细讲解移位操作符 位操作符的使用和特点。
1. 算术操作符
算术操作符中有 1. 2. - 3. *4. / 5. % 算术操作符中最重要的也是%和/ int main()
{printf(%lf\n, 10 / 3.0);//5printf(%d\n, 10 % 2);//0int a -5;return 0;
}/ 除法 - 得到的是商除法操作符的两个操作数都是整数的话执行的是整数除法除法操作符的两个操作数只要有一个浮点数执行的是小数除法% 取模取余得到的是余数取模操作符的操作数必须是整数
这也是算术操作符也是最基本的操作符之一。
2. 移位
进制位的表示 进制也就是进位制是人们规定的一种进位方法。 对于任何一种进制—X进制就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一十六进制是逢十六进一二进制就是逢二进一以此类推x进制就是逢x进位。 二进制数有两个特点它由两个基本数字01组成二进制数运算规律是逢二进一。 四进制是以4为底数的进位制以 0、1、2 和 3 四个数字表示任何实数。 七进制是以7为底数的记数系统。使用数字0-6。七进制小数通常都是循环小数除非分母是七的倍数。有些小数可以用有限个数字来表示 八进制的基R82^3有数码0、1、2、3、4、5、6、7并且每个数码正好对应三位二进制数所以八进制能很好地反映二进制。 十进制它的特点有两个有012….9十个基本数字组成十进制数运算是按“逢十进一”的规则进行的. 十二进制长度单位一英尺等于12英寸一先令等于12便士就连足球比赛罚点球的英制长度也是12码。 十六进制数有两个基本特点它由十六个字符09以及ABCDEF组成它们分别表示十进制数1015十六进制数运算规律是逢十六进一即基R162^4通常在表示时用尾部标志H或下标16以示区别。 六十进制古代人由于生产劳动的需要要研究天文和历法就牵涉到时间和角度了。因为历法需要的精确度较高时间的单位小时角度的单位度都嫌太大。必须进一步研究其小数。它们的小数都具有这样的性质︰使1/2,1/3,1/4,1/5,1/6等都能成为他的整数倍。以1/60作为单位就正好具有这个性质。
移位操作符
1. 》–左移操作符
左移运算符是一个计算机用语。用来将一个数的各二进制位全部左移若干位。因为位运算比×用算快所以可对一下代码进行优化还可利用左移运算符计算a的第b个二进制位是什么。
int main()
{int a 3;//00000000000000000000000000000011int b a 1;printf(%d\n, b);printf(%d\n, a);return 0;
}而正数的原码反码补码都相同而b6原码0000000000000000000000000000110相当于00011进一位。 同理负数同样进一位。
int main()
{int a -3;//10000000000000000000000000000011//11111111111111111111111111111100//11111111111111111111111111111101 - 补码//int b a 1;//11111111111111111111111111111010//11111111111111111111111111111001//10000000000000000000000000000110//11111111111111111111111111111010//10000000000000000000000000000101//10000000000000000000000000000110printf(%d\n, b);//-6printf(%d\n, a);//-3return 0;
}这就是左移的全部内容。
2. 《–右移操作符 (重要的点上面移位都只能移动整数,而浮点数不可取)
算术右移算术右移需要考虑符号位右移一位若符号位为1就在左边补1否则就补0。 所以算术右移也可以进行有符号位的除法右移,n位就等于除2的n次方。 逻辑右移逻辑右移左边统一添0。
3.位操作符
位操作符就相对很简单M(注意的是所有的位的都是二进制) 数学逻辑符号 是一个数学逻辑符号如在歌曲中张三李四表示此歌曲由张三与李四共同演唱。在数学逻辑中此符号也充分运用到意思是与、和。在C语言中有两种意思一种是取地址符是单目运算符另一种是位运算符表示“按位与”是双目运算符。ab表示啊a和b按位进行与运算。后面是个变量。每个变量对应一块存储空间。每个存储空间有一个编号也就是地址变量名表示取出这个编变量名表示取出这个编号所对应的存储空间里的值。
int c a b;//按位与//00000000000000000000000000000011 - 3的补码//10000000000000000000000000000101 //11111111111111111111111111111010//11111111111111111111111111111011 - -5的补码//00000000000000000000000000000011 - 3的补码//00000000000000000000000000000011I “|”是位运算符表示“按位或”。按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时结果位就为1。参与运算的两个数均以补码出现。 用代码展示
int c a | b;//按位或/*11111111111111111111111111111011 - -5的补码00000000000000000000000000000011 - 3的补码11111111111111111111111111111011*/^
c语言中^是异或运算符。先将两个整数化成二进制位数。在每个对应的位数中只有两者的该位上一个是1或者0而另一个的改为上必须是相反的那么做该运算该位的结果就是1否则结果就是0。 代码如下
int a 3;int b -5;int c a ^ b;//按位异或 - 对应的二进制位相同为0相异为1//11111111111111111111111111111011 - -5的补码//00000000000000000000000000000011 - 3的补码//11111111111111111111111111111000//11111111111111111111111111110111//10000000000000000000000000001000
用一个代码举例
#include stdio.h
int main()
{
int a 10;
int b 20;
a a^b;
b a^b;
a a^b;
printf(a %d b %d\n, a, b);
return 0;
}
参考代码
//方法1
#include stdio.h
int main()
{
int num 10;
4.赋值操作符
赋值操作符是一个很棒的操作符他可以让你得到一个你之前不满意的值。也就是你可以给自己重新赋值。 这也是最简单的操作符了。 赋值操作符可以连续使用比如 int a 10; int x 0; int y 20; a x y1;//连续赋值 这样的代码感觉怎么样 那同样的语义你看看 x y1; a x; 这样的写法是不是更加清晰爽朗而且易于调试。 连加。 -连减等同于i– * 连乘 /连除 %连余数 左移
5.单目操作符 #include stdio.h
int main()
{
int a -10;
int *p NULL;
printf(%d\n, !2);
printf(%d\n, !0);
a -a;
p a;
printf(%d\n, sizeof(a));
printf(%d\n, sizeof(int));
printf(%d\n, sizeof a);//这样写行不行
printf(%d\n, sizeof int);//这样写行不行
return 0;
}6.关系操作符 这些关系运算符比较简单没什么可讲的但是我们要注意一些运算符使用时候的陷阱。 警告 在编程的过程中 和不小心写错导致的错误。
7. 逻辑操作符 逻辑与 || 逻辑或 这两个操作符是用于表示逻辑上的真假。到底是什么东西呢 区分逻辑与和按位与 区分逻辑或和按位或 12-----0 12----1 1|2-----3 1||2----1 逻辑与和或的特点 360笔试题
#include stdio.h
int main()
{
int i 0,a0,b2,c 3,d4;
i a b d;
//i a||b||d;
printf(a %d\n b %d\n c %d\nd %d\n, a, b, c, d);
return 0;
}
//程序输出的结果是什么8.条件操作符 exp1 ? exp2 : exp3 条件操作符(单目操作符) 1、固定格式eg((ab)?(x):(y)) 2、意思就是如果满足条件ab那么就返回x的值否则就返回y的值 求两个数的较大值条件操作符就可以派上用场了。
代码举例
#define _CRT_SECURE_NO_WARNINGS 1#includestdio.hint main()
{int career 6, identify 9;int issue ((career identify) ? (250) : (666));printf(%d\n, issue);return 0;
}
9.逗号操作符 exp1, exp2, exp3, …expN 逗号表达式就是用逗号隔开的多个表达式。 逗号表达式从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
for (let i 0, j 9; i 9; i, j--) {console.log(a[${i}][${j}] ${a[i][j]});
}
当你想要在期望一个表达式的位置包含多个表达式时可以使用逗号运算符。这个运算符最常用的一种情况是在 for 循环中提供多个参数。
逗号运算符与数组、对象和函数参数中的逗号含义完全不同。
总结
最后一个操作符还没学好我会单独写一篇谢谢大家关注。