电子开发 | 基础入门 | 电路原理图 | 濮婎垰鑸伴崶鎯х杽娓氾拷 | PLC閸╄櫣顢�   閵嗗﹤顩ч弸婊冩灘濞嗐垺婀扮粩娆欑礉鐠囬攱瀵� Ctrl+D 閹靛濮╅弨鎯版閿涗焦鍔呯拫銏″亶閻ㄥ嫭鏁幐浣碘偓锟�娑撯偓鐠у嘲顒熸稊鐘辩鐠х柉绻樺銉礉閻㈤潧鐡欏鈧崣鎴犲竾濞嗐垼绻嬮幃顭掔磼.

电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册

闂備礁鐤囧Λ鍕箠閹版澘鏋侀柛婵勫劜瀹曞銇勯弽銊ㄥ鐟滄澘妫涢埀顒侇問閸犳牜鎹㈤幋鐐存珷婵犲﹤鐗嗙粈鍐偓鍏夊亾閻庯綆鍓涢ˇ顕€姊洪崫鍕闁稿鎹囬弻锟犲磼濞戞﹩妫嗘繝鈷€鍕垫疁濠碘€崇摠缁绘繈宕熼浣圭槑闂佽瀛╃粙鎺楀礉濡ゅ懎鏋侀柛婵勫劜瀹曞銇勯弽銊ㄥ鐟滄澘妫涢埀顒侇問閸犳牜鎹㈠Δ鍜佹晣闁告縿鍎虫稉宥嗕繆閵堝倸浜惧┑鐐叉噺鐢剝淇婄€电硶鍋撻敐鍛暢缂佲偓婢舵劖鐓熸い顐幘缁佺兘鏌i銏㈢暫鐎规洘顨婇、妤呭焵椤掑倹顫曢柨鐔哄Т閽冪喖鏌曟径妯煎帥闁搞倕瀚伴弻鐔兼濞戝崬鍓伴梺鍝ュ剳閹凤拷 闂備焦妞垮鈧紒鎻掝煼閹本銈i崘銊ь槯濡炪倖宸婚崑鎾剁磼閹插纾块柟宄邦儔閺佸秹宕熼鐔哥槗闂備線娼荤徊濠氬礉婵犲洤鐒垫い鎺嶇婵鏌℃担鍛婃喐闁逞屽墯缁嬫帡宕濋幒鏂垮灊闁绘ê纾埢鏃€鎱ㄥ鍡椾簼闁活亙绮欓弻娑樷槈濞咁収浜為幑銏ゅ焵椤掆偓椤法鎹勯悜妯侯槱婵犫拃鍕煉鐎规洘岣挎禒锕傛倻閳轰椒澹曢梺璺ㄥ櫐閹凤拷
闂備礁鐤囧Λ鍕涘Δ鈧悾鐑藉礋椤掆偓缁剁偤鏌嶆潪鎵窗闁告柨鎳庨湁闁稿繗澹堟竟妯尖偓瑙勬礈閸犳牠骞冭瀹曞爼濡搁敂鍓ф闂佽楠稿﹢閬嶅磻濡吋顐介柨鐕傛嫹100 c闂佽崵濮村ù鍌炲矗閳ь剟鏌嶆导娆愬 chm闂備礁鎼粔鍫曞储瑜忓Σ鎰版晸閻樺弬銉╂煕鐏炲墽绠橀柕鍫亰閺岋繝宕掑☉姘櫑闂佸摜鍋涢顓㈠焵椤掆偓濠€閬嶃€佹繝鍥舵晪婵炴垶姘ㄧ壕濂告煕閳藉棗骞樼紒鈧径鎰仭闁哄洨鍋為ˉ鐘崇箾閹绘帪鏀荤紒妤冨枔閳ь剨缍嗘禍鐐哄箺瀹ュ拋鐔嗛柤鍝ユ暩閸熻尙绱掓潏銊х疄鐎规洘锕㈠畷銊╊敇瑜嶉弲锝呂旈悩闈涗哗闁跨喆鍎甸崺鈧い鎺嶇婵鏌℃担鍛婃喐闁逞屽墯缁嬫帡宕濋幒鏂垮灊闁绘ê纾埢鏃€鎱ㄥ鍡椾簼闁活亙绮欓弻娑樷槈濞咁収浜為幑銏ゅ焵椤掆偓椤法鎹勯悜妯侯槱婵犫拃鍕煉鐎规洘岣挎禒锕傛倻閳轰椒澹曢梺璺ㄥ櫐閹凤拷
搜索: 您现在的位置: 电子开发网 >> 基础入门 >> Arduino开发学习 >> 正文

Arduino-运算符-系列4

作者:佚名    文章来源:网络    点击数:1059    更新时间:2023/11/26

前面我们陆续介绍了Arduino的程序结构、数据类型、常量和变量,本章介绍Arduino的运算符,运算符是一个特定的符号,它告诉计算机执行特定的数学或逻辑运算。在C语言中内置了丰富的运算符,包含以下类型:

  1. 算术运算符
  2. 关系运算符
  3. 逻辑运算符
  4. 位运算符
  5. 混合运算符
microcomputer 

算术运算符

算术运算符也就是常见的加减乘除、赋值运算和模数运算,详细了解一下,我们先假设变量A的值是10,变量B的值是20:

  1. 赋值运算符:“ = ”,表示将等号右边的值存储在等号左边的变量中。如:A=B。这里注意不能理解为等于符号。
  2. 加法运算符:“ + ”,表示两个操作数相加。如:A+B,将会得到30。
  3. 减法运算符:“ – ”,表示两个操作数相减。如:A-B,将会得到-10。
  4. 乘法运算符:“ * ”,表示两个操作数相乘。如:A*B,将会得到200。
  5. 除法运算符:“ / ”,表示两个操作数相除。如:B/A,将会得到2。
  6. 模数运算符:“ % ”,表示求整数除法中的余数。如:B%A,将得到0。

再看一个实际例子:

1
2
3
4
5
6
7
8
void loop () {
int a = 9,b = 4,c;
c = a + b;
c = a - b;
c = a * b;
c = a / b;
c = a % b;
}
1
2
3
4
5
6
/*代码将输出:*/
a + b = 13
a - b = 5
a * b = 36
a / b = 2 //不计余数,取整数商;
a % b = 1 //余数是1;

关系运算符

关系运算符在C语言中主要起判断的作用。同样的,我们先假设变量A的值是10,变量B的值是20:

  1. 等于:“ == ” ,判断两个操作数的值是否相等,如果是,则条件为真。如:A == B,结果不为真,会返回 false;
  2. 不等于:“ != ”,判断两个操作数的值是否相等,如果值不相等,则条件为真。如:A != B,结果为真,会返回 true;
  3. 小于:“ < ”,判断符号左边操作数的值是否小于右边操作数的值,如果是,则条件为真。如A < B,结果为真,会返回 true;
  4. 大于:“ > ”,判断符号左边操作数的值是否大于右边操作数的值,如果是,则条件为真。如A > B,结果不为真,会返回 false;
  5. 小于等于 :“ <= ”,判断符号左边操作数的值是否小于或等于右边操作数的值,如果是,则条件为真。如A <= B,结果为真,会返回 true;
  6. 大于等于:“ >= ”, 判断符号左边操作数的值是否大于或等于右边操作数的值,如果是,则条件为真。 如A >= B,结果不为真,会返回 false;

看实际例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void loop () {
int a = 9,b = 4
bool c = false;
if(a == b)
c = true;
else
c = false;
if(a != b)
c = true;
else
c = false;
if(a < b)
c = true;
else
c = false;
if(a > b)
c = true;
else
c = false;
if(a <= b)
c = true;
else
c = false;
if(a >= b)
c = true;
else
c = false;
}

输出结果如下:

1
2
3
4
5
6
c = false
c = true
c = false
c = true
c = false
c = false

逻辑运算符

同样的,我们先通过假设变量A的值是10,变量B的值是20:

  1. 逻辑与‘and’:“ && ”,如果两个操作数都非零,则条件为真。如:A && B,结果为真;
  2. 逻辑或‘or’:“ || ”,如果两个操作数中有一个非零,则条件为真。如:A || B,结果也为真;
  3. 逻辑非‘not’:“ ! ”,用于反转操作数的逻辑状态。如操作数的逻辑状态条件为真,则逻辑非的结果为假。如:!(A&&B),因为A && B,结果为真,则逻辑非结果为假。

看一下实际例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void loop () {
int a = 9,b = 4
bool c = false;
if((a > b)&& (b < a))
c = true;
else
c = false;
if((a == b)|| (b < a))
c = true;
else
c = false;
if( !(a == b)&& (b < a))
c = true;
else
c = false;
}

输出:

1
2
3
c = true
c = true
c = true

位运算符

Arduino中的位运算符包括:按位与(&)、按位或(|)、按位异或(^)、取反(~),它们的运算对象都必须为整数,而且除了取反运算符,其余三种均为双目运算符(见文末注解)。当然Arduino中还包括左移运算符(<<)和右移运算符(>> )。老惯例,假设变量A的值是60(二进制0011 1100),变量B的值是13(二进制0000 1101):

  1. 按位与(&):让参与运算的两个数相对应的二进制位相与。规则:只有对应的两个二进制位都为1时,结果位才为1;只要有一个二进制位为0,结果位就为0。如A&B,A对应二进制为 0011 1100 ;B对应二进制为 0000 1101 ,结果为12,对应二进制运算结果为 0000 1100。
  2. 按位或(|):让参与运算的两个数相对应的的二进制位相或。规则:只有对应的两个二进制位都为0时,结果位才为0;只要有一个二进制位为1,结果位就为1。如:A|B,结果对应的二进制位为 0011 1101,结果为61;
  3. 按位异或(^):让参与运算的两个数相对应的的二进制位相异或。规则:当对应的两个二进制位相同(都为1或都为0)时,结果位为0;当对应的两个二进制位相异时,结果位为1。如A^B,结果对应的二进制位为00110001,结果为49;
  4. 取反(~):用于求整数的二进制反码。规则:二进制位为1的取反后变为0,二进制位为0的取反后变为1。如:~A,结果二进制为1100 0011;
  5. 左移运算符(<<):规则:左操作数值由右操作数指定的位数向左移动,左边“抛弃”,右边补0。如:(A << 2)结果为 240, 二进制为 1111 0000;
  6. 右移运算符(>> ):左操作数值按右操作数指定的位数右移,左边用0填充,右边丢弃。如:(A >> 2) 结果为 15, 二进制为 0000 1111。

看一些实际例子:

1
2
3
4
5
6
7
8
9
10
void loop () {
int a = 60,b = 13
int c = 0;
c = a & b ;
c = a | b ;
c = a ^ b ;
c = a ~ b ;
c = a << b ;
c = a >> b ;
}

输出:

1
2
3
4
5
6
c = 12
c = 61
c = 49
c = -60
c = 240
c = 15

混合运算符

我们还是以实际例子来帮助理解,假设变量A的值是10,变量B的值是20:

  1. “++”:增量运算符,将整数值增加1。如:A++,结果为11;
  2. “–”: 递减运算符,使整数值减少1 。如:A–,结果为9;
  3. “+=”:将右操作数添加到左操作数并将结果分配给左操作数。如:B += A,等价于B = B+ A;
  4. “-=”:将左操作数减去右操作数并将结果赋给左操作数。如:B -= A等价于B = B – A;
  5. “*=”:将右操作数与左操作数相乘,并将结果赋给左操作数。如:B*= A等价于B = B*A;
  6. “/=”:将左操作数与右操作数分开,并将结果分配给左操作数。如:B /= A等价于B = B / A;
  7. “%=”:对两个操作数取模,并将结果赋给左操作数。如:B %= A等价于B = B % A。

看实际例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
void loop () {
int a = 10,b = 20
int c = 0;
a++;
a--;
b += a;
b -= a;
b *= a;
b /= a;
a %= b;
a |= b;
a &= b;
}

输出为:

1
2
3
4
5
6
7
8
9
a = 11
a = 9
b = 30
b = 10
b = 200
b = 2
a = 0
a = 0
a = 30

注解

单目运算符:只对一个变量进行操作。如:a++;
双目运算符:对两个变量进行操作。如:a=1; b=3; c=a+b;就是双目运算符;
多目运算符:对三个变量进行操作。如:int a = boolean ? b : c; 。

Tags:Arduino,运算符,程序  
责任编辑:admin
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
    没有任何评论
最新推荐
闂佹眹鍨藉ḿ褔鎮哄▎蹇e殨闁逞屽墴瀹曪綁骞嬮悩鐢敌ч梺鎸庣⊕绾板秹鎯囪ぐ鎺撯挅闁糕剝鐟﹂崑鍛存煕濮橆剛澧曢柟顔兼川閻氶箖鎳¢妶鍡樻瘎闁诲孩绋掗崝鏇㈠春濡や焦濯存繝濞惧亾缂佹鐭傞幃鑺ユ媴閸愵亞鍞撮梺鎼炲劚婢ц棄鈻撻幋鐘电>闁瑰濮疯ぐ鏌ユ煥濞戞﹩鍞筶c閻庤鎮堕崕鑼暜閸洖绠柍褜鍓熷鐢告晸閿燂拷,濠碘槅鍨界槐鏇㈠极閹间礁鏋侀柟娈垮枟閺嗏晠鏌i婊冨姤闁伙讣鎷�,闂佸憡顨嗗ú婊勬櫠閺嶎厼瀚夌紒鈥宠唺A缂備焦绋戦ˇ閬嶆偤閹达附鏅ù锝堟閻ゎ噣鏌﹂埀顒勫礃椤忓懏姣勯柣鐘辫閸ㄦ澘霉濡偐纾鹃柟瀵稿Х瑜拌尙绱掗钘夊姢鐎规洘娲熼弫宥囦沪閼规壆顦伴悗瑙勬偠閸庢娊鍩㈤懖鈺傛殰闁割偅绻傞悘锟犳⒑椤愩倕小闁绘粠鍨跺畷鎰箔鐞涒€充壕闁稿本渚楅崑銊╁级閳轰線顎楅柛娅诲啠鏋栭柕濞垮劙缁ㄥ啿菐閸ワ絺鍋撻崘鎻掔稻婵炴潙鍚嬮〃鍛般亹閸ф鏅慨妯块哺閺嗏晠鎮楀☉娆忓缂佽鲸鍨垮畷锝夊箣閻樼數效闂佹寧鍐婚幏锟�
璧勬枡鍖呬笅杞�
 [闂佸憡顨嗗ú婊勬櫠閺嶎厼瀚夊Δ锕佹硶閵堫偊鏌¢崒锔藉]闂佸憡銇炵粈渚€濡垫径灞稿亾濞戝磭绱扮紒鍙樺嵆瀹曪繝寮撮悩宸毈闂佸搫鐗嗛幖顐︽偪閸曨剛鐟归柨鐕傛嫹100 c闁荤姴娴勯幏锟�
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]婵炴垶鎸搁ˇ瀹犮亹缁€鐑睠闁诲孩鍐荤紓姘卞姬閸曨剛顩烽悹鎭掑妽閸╁倿寮堕悜鍡楃仧婵炲棭鏁-TR
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]LM324闁哄鏅滈崝鏍棘閿燂拷4~20mA闁哄鍎戦幏锟�1~5V闂佹眹鍨归悘姘辩矈閿燂拷
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]LM386婵$偛婀辩划顖炴倵椤掍焦濯撮柟鎹愵嚙椤斿﹪鏌涜箛鎿冨剶妞ゃ儲鎹囧銊╁箚瑜嬫禍锝夋煕閿濆啫濡奸悽顖ゆ嫹
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]936闂佺粯甯掗敃銈堛亹閹绢喗鍋ㄥù锝呭暟閻斿懘鏌涘Ο鐓庢灁闁诡喖锕畷鍫曟晸閿燂拷
 [闂佸憡顨嗗ú婊勬櫠閺嶎厼瀚夊Δ锕佹硶閵堫偊鏌¢崒锔藉]闁烩剝甯掗幊搴ㄦ晬閹邦兘鏋栭柕蹇ョ磿閵堟挳鎮归悮瀛樺+濠电偞鎸撮弲娑氣偓鐧告嫹+闂佺缈伴崕鎾敆閻斿吋鍎嶉柛鏇ㄥ亜缁€锟�
 [闂備緡鍋呭銊╁极閵堝鍋ㄩ梻鍫熺〒閹藉秹鎮规担鐟扮妞ゆ挸鎲″ḿ顏堫敍濞嗘劦鍋�]S7-200PLC闂佹眹鍔岀€氼亞鎸掗姀銈嗗剳闁绘梹妲掗幏顐⒚归悪鍛 S7_2
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]S7-200闁圭厧鐡ㄩ幐濠氬几閸愨晝顩烽悹浣告贡缁€鍕煕韫囷絿鍘滅紒鎲嬫嫹,STEP7
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]ModbusPoll闂佸憡绮岄鐖媎busSalve闂佺ǹ楠忛幏锟�
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]STEP7濠碘槅鍨崜婵堚偓姘懇閺屽矁绠涢弬璺ㄦ▌婵炲濮伴崐鏇犺姳閿燂拷 Smart_
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]Modbus闁荤姴顑呴崯鎶芥儊椤栨粌鍨濋柛鎾楀倻瑙� v1.024 缂傚倷绶ら幏锟�
 [闁哄鍎愰崹顖氣枎閵忋垻灏甸柨鐕傛嫹]Modscan32闂佸憡绮岄鐖媎sim32,modb
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]89c51闂佺ǹ绻愰ˇ閬嶆偟濞戙垹妫橀梺顐g闂嗗綊鏌i鍡楁珢缂佽鲸鐛otues
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]婵炴垶鎸稿ú銈夊礋妤e啫鍌ㄩ柛鐐村Оotues婵炲濮惧▔鏇烇耿閿涘嫮鐭欓悗锝庝簽绾板秵绻濊閸旀鎮ラ敓锟�
 [闂佹椿婢€缁插鎯岄悙顒傤浄閻犳亽鍔嶉崺鍌炴偣娴g懓绀冩い鎿勬嫹]51闂佸憡顨嗗ú婊勬櫠閺嶎厼瀚夐柛婵嗗閸у﹦绱掔€h埖瀚� protues婵炲濮惧▔鏇烇耿閿燂拷
鏈€鏂版枃绔�
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询