TDA2030功放电路图 电动车充电器电路图 电子电路 功放电路 电子制作 集成块资料 电子报 pcb 变压器 元器件知识 逆变器电路图 电路图 开关电源电路图 传感器技术 led 电磁兼容
电子电路图
当前位置: 首页 > 电子电路 > 设计编程

介绍单片机C51位运算应用技巧

时间:2018-11-23 08:44:09来源:网络 作者:admin 点击:
介绍单片机C51位运算应用技巧

位运算应用口诀:  清零取位要用与,某位置一可用或,若要取反和交换,轻轻松松用异或!  移位运算要点  1 它们都是双目运算符,两个

介绍单片机C51位运算应用技巧



位运算应用口诀:

  清零取位要用与,某位置一可用或,若要取反和交换,轻轻松松用异或!

  移位运算要点

  1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。

  2 "<<" 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。

  3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。

  4 ">>>"运算符,右边的位被挤掉,对于左边移出的空位一概补上0。

  位运算符的应用 (源操作数s 掩码mask)

  (1) 按位与-- &

  1 清零特定位 (mask中特定位置0,其它位为1,s=s&mask)2 取某数中指定位 (mask中特定位置1,其它位为0,s=s&mask)(2) 按位或-- |

  常用来将源操作数某些位置1,其它位不变。 (mask中特定位置1,其它位为0 s=s|mask)(3) 位异或-- ^

  1 使特定位的值取反 (mask中特定位置1,其它位为0 s=s^mask)2 不引入第三变量,交换两个变量的值 (设 a=a1,b=b1)目标 操作 操作后状态

  a=a1^b1 a=a^b a=a1^b1,b=b

  b=a1^b1^b1 b=a^b a=a1^b1,b=a

  a=b1^a1^a1 a=a^b a=b1,b=a

  二进制补码运算公式:

  -x = ~x + 1 = ~(x-1)

  ~x = -x-

  -(~x) = x+

  ~(-x) = x-

  x+y = x - ~y - 1 = (x|y)+(x&y)

  x-y = x + ~y + 1 = (x|~y)-(~x&y)

  x^y = (x|y)-(x&y)

  x|y = (x&~y)+y

  x&y = (~x|y)-~x

  x==y: ~(x-y|y-x)

  x!=y: x-y|y-x

  x< y: (x-y)^((x^y)&((x-y)^x))

  x<=y: (x|~y)&((x^y)|~(y-x))

  x< y: (~x&y)|((~x|y)&(x-y))//无符号x,y比较x<=y: (~x|y)&((x^y)|~(y-x))//无符号x,y比较应用举例

  (1) 判断int型变量a是奇数还是偶数

  a&1 = 0 偶数

  a&1 = 1 奇数

  (2) 取int型变量a的第k位 (k=0,1,2……sizeof(int)),即a>>k&(3) 将int型变量a的第k位清0,即a=a&~(1<

容-源-电-子-网-为你提供技术支持

本文地址:http://www.dziuu.com/dz/22/15429340782606.shtml


本文标签:


.
12下一页尾页
顶一下
0%
返回首页
0
0%

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
表情:
名称: E-mail: 验证码: 匿名发表
发布文章,推广自己产品。
热门标签