&运算符是如何运算的? c语言逻辑运算符 我不明白&&和||到底是怎么运算的
\u6309\u4f4d\u8fd0\u7b97\u7b26\u662f\u600e\u4e48\u8fd0\u7b97\u7684\uff1f\u9996\u5148,\u4e8c\u8fdb\u5236\u4e0e\u8fd0\u7b97\u89c4\u5219:1&1=1 1&0=0 0&0=0
\u4e8c\u8fdb\u5236\u6216\u8fd0\u7b97\u89c4\u5219:1|1=1 1|0=1 0|0=0
\u518d\uff1a\u4e8c\u8fdb\u5236\u4e0e\u5341\u8fdb\u5236\u8f6c\u6362\uff1a
\u4e0d\u80fd\u62532\u7684n\u6b21\u65b9\uff0c\u53ea\u597d\u4ee5\u4f8b\u5b50\u8bb2\u89e3\uff1a
1111 1111\uff1d128*1+64*1+32*1+16*1+8*1+4*1+2*1+1*1
0000 0000\uff1d128*0+64*0+32*0+16*0+8*0+4*0+2*0+1*0
15\uff1d\u4e8c\u8fdb\u5236\uff1a \uff080000 1111\uff09
127\uff1d\u4e8c\u8fdb\u5236\uff1a\uff081111 1111\uff09
\u6309\u4f4d\u4e0e\u81ea\u7136\u5c31\u662f\uff080000 1111\uff09\uff1d15
128\uff1d\u4e8c\u8fdb\u5236\uff1a\uff080001 0000 0000\uff09
127\uff1d\u4e8c\u8fdb\u5236\uff1a\uff080000 1111 1111\uff09 \uff08\u9ad8\u4f4d\u75280\u8865\u9f50\uff09
\u6309\u4f4d\u6216 \u5c31\u662f\uff080001 1111 1111\uff09\uff1d255
\u56de\u7b54\u8865\u5145\uff1a
\u4e8c\u8fdb\u5236\u201c\u4e0e\u201d\u8fd0\u7b97\u89c4\u5219:1&1=1 1&0=0 0&0=0
\u4e8c\u8fdb\u5236\u201c\u6216\u201d\u8fd0\u7b97\u89c4\u5219:1|1=1 1|0=1 0|0=0
\u6309\u4f4d\u4e0e\u5c31\u662f\u4ece\u9ad8\u5230\u4f4e\uff0c\u9010\u4f4d\u8fdb\u884c"\u4e0e"\u8fd0\u7b97
\u6240\u4ee5\u4ece\u9ad8\u5230\u4f4e\uff0c15&127:
15\uff1d\u4e8c\u8fdb\u5236\uff1a \uff080000 1111\uff09
127\uff1d\u4e8c\u8fdb\u5236\uff1a\uff081111 1111\uff09
\u2193\u2193\u2193\u2193\u2193\u2193
0000 1111
\u6ce8\u610f\uff1a \u201c\u4e0e\u201d\u8fd0\u7b97\u89c4\u5219:1&1=1 1&0=0 0&0=0
\u903b\u8f91\u8fd0\u7b97\uff0c\u65b9\u5f0f\u5b50\u6210\u7acb\u662f\u5373\u4e3a\u771f\u65f6\u6574\u4e2a\u5f0f\u5b50\u503c\u5c31\u4e3a1\u53cd\u4e4b\u4e3a0\uff0c\u800c\u5bf9\u4e8e\u503c\u6765\u8bf4\u53ea\u8981\u4e0d\u662f0\u5c31\u4e3a\u771f\uff0c\u5982i&&j&&k=1\uff0ci\uff0cj=3\u90fd\u4e3a\u771f\uff0c\u6240\u4ee5\u6574\u4e2a\u5f0f\u5b50\u4e3a\u771f\u7b49\u4e8e1\u3002\u53e6\u5916\u8981\u6ce8\u610f\u7684\u662f\u5f53&&\u5de6\u8fb9\u4e3a\u5047\u65f6\u4e0d\u8fdb\u884c\u53f3\u8fb9\u8ba1\u7b97\uff0c\u5982(i=0)&&(j=3);l\u4e3a0\u5047\u53f3\u8fb9j=3\u4e0d\u8fdb\u884c\u8fd0\u7b97\uff0c\u6240\u4ee5j\u8fd8\u662f\u7b49\u4e8e2\uff0c\u624b\u673a\u5199\u7684\u771f\u4e0d\u65b9\u4fbf\u3002
按位与运算符"&"是双目运算符是参与运算的两数各对应的二进位相与。
按位与"&"功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。 按位与运算通常用来对某些位清0或保留某些位。
扩展资料:
相关的位运算符:
1、按位或运算“|”:
按位或运算符“|”是双目运算符。 其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。
2、按位异或运算“^”:
按位异或运算符“^”是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现。
参考资料来源:百度百科-位运算符
C语言 运算符%是运算:
%是除法取余运算,用于整数与整数运算。否则,不同的编译器会得不同结果。两边的运算量必须为整型,且%后面的运算量不能为0。
'%'为取余运算符,用于把它前面的整数值或表达式除以其后面的整数值或表达式,结果为不能被后面的整数或表达式整除的最小整数,它后面的数值应该为大于1的正整数。如表中所示的"13%7",就表示13 除以7余6。
扩展资料:
C语言运算符%的操作实例:
输入
#include <stdio.h>
main()
{
int a = 21;
int b = 10;
int c ;
c = a + b;
printf("Line 1 - c 的值是 %d
", c );
c = a - b;
printf("Line 2 - c 的值是 %d
", c );
c = a * b;
printf("Line 3 - c 的值是 %d
", c );
c = a / b;
printf("Line 4 - c 的值是 %d
", c );
c = a % b;
printf("Line 5 - c 的值是 %d
", c );
c = a++;
printf("Line 6 - c 的值是 %d
", c );
c = a--;
printf("Line 7 - c 的值是 %d
", c );
}
输出结果为:
Line 1 - c 的值是 31
Line 2 - c 的值是 11
Line 3 - c 的值是 210
Line 4 - c 的值是 2
Line 5 - c 的值是 1
Line 6 - c 的值是 21
Line 7 - c 的值是 22
参考资料:百度百科 C语言运算符
C语言中%的作用:%作为运算符是用来取余的
运算符(operator)是可以对数据进行相应操作的符号。如对数据求和操作,用加法运算符 '+',求积操作使用乘法运算符 '*' ,求余数用运算符'%'。等等
例如 :
一、25%4=1 ;25除以4商6余数是1
二、33%5=3 ;33除以5商6余数是3
扩展资料:
C语言常用的运算符
1. 算术运算符
用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
2.关系运算符
用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3.逻辑运算符
用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
4.位操作运算符
参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
5.赋值运算符
用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6.条件运算符
这是一个三目运算符,用于条件求值(?:)。
7.逗号运算符
用于把若干表达式组合成一个表达式(,)。
8.指针运算符
用于取内容(*)和取地址(&)二种运算。
9.求字节数运算符
用于计算数据类型所占的字节数(sizeof)。
10.特殊运算符
有括号(),下标[],成员(→,.)等几种。
参考资料:百度百科-c语言运算符
1、%是求余运算符,也叫模除运算符,用于求余数。
2、%要求两个操作数均为整数(或可以隐式转换成整数的类型),%是求余数的运算,例如7%2=1。
3、举例:
#include<stdio.h>
void main()
{
int i=7;
i=i%2;
printf("%d
",i);
}
运行结果如下图:
4、%是运算符的一种其他运算符:
(1)算术运算符:* - + / %
(2)关系运算符: > < == != >= <=
(3)逻辑运算符:! && ||
(4)位运算符:<< >> ~ | ^ &
扩展资料
1、%d整型输出,%ld长整型输出,
2、%o以八进制数形式输出整数,
3、%x以十六进制数形式输出整数,或输出字符串的地址。
4、%u以十进制数输出unsigned型数据(无符号数)。注意:%d与%u有无符号的数值范围,也就是极限的值,不然数值打印出来会有误。
5、%c用来输出一个字符,
6、%s用来输出一个字符串,
7、%f用来输出实数,以小数形式输出,默认情况下保留小数点6位。
8、%.100f来输出实数,保留小数点100位。
9、%e以指数形式输出实数,
10、%g根据大小自动选f格式或e格式,且不输出无意义的零。
参考资料:蔡庆华版案例式c语言程序与设计第二章基本数据类型
%是求余运算符,也叫模除运算符,用于求余数。
%要求两个操作数均为整数(或可以隐式转换成整数的类型)。
标准规定:
如果%左边的操作数为负数时,则模除的结果为负数或者0,
如果%左边的操作数为正数时,则模除的结构为正数或者0。
示例代码:
c 为字符类型,其235对应二进制位0xFD,也就是-3的补码形式。则c变换为int 为-3;
扩展资料
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。
当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,对此合理进行分类,找出它们与数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
参考资料:百度百科-C语言
扩展阅读:厄米算符一览表 ... &&的运算 ... c语言ll 和&&的运算 ... &&的运算规则 ... 键盘100个符号 ... 运算符&& ... &&怎么运算 ... &&是且还是或 ... 运算符&&运算规则 ...