单片机编程 运用“与”运算,判断某8位二进制数是奇数还是偶数个1

 我来答
生活如歌_
2012-11-28 · TA获得超过1.5万个赞
知道大有可为答主
回答量:7398
采纳率:78%
帮助的人:2180万
展开全部
51单片机可以不用与运算,只接判断,用P(奇偶校验位),如果非得用与运算只能这样:
MOV A,#0FFH
ANL A,#DATA;某数)
JNB P,REL
泰科博思
2024-12-27 广告
CASTEP是一款基于第一性原理计算方法的材料模拟软件,其优势包括:1.高精度。CASTEP使用密度泛函理论(DFT)进行第一性原理计算。这种基于波函数的方法不依赖于实验数据,可以获得非常高的准确性。2.广泛适用性。CASTEP适用于多种材... 点击进入详情页
本回答由泰科博思提供
xiaodongxizhu
2012-11-28 · TA获得超过561个赞
知道答主
回答量:194
采纳率:0%
帮助的人:54.7万
展开全部
//假设R3中存放待判数值,R4存放临时结果。如果寄存器不足,就用内存代替。

MOV R0,1
MOV R1,0 //1个数计数器
MOV R2,0 //循环次数,共循环8次
LABEL_LOOP:
CMP R2,8 //循环次数比较
BE LOOP_END //如果已经循环8次则跳转到LOOP_END
AND R4,R3,R0 //R3,R0按位与运算,结果存入R4
CMP R4,0 //依次取出相应的位与0比较
BE LOOP_NEXT //若相等则跳转到LOOP_NEXT,否则计数器加1再跳转
INC R1
B LOOP_NEXT
LOOP_NEXT:
INC R2
SHL R0 //R0左移一位,以便取出下一位
B LABEL_LOOP
LOOP_END:
AND R1,R1,1 //R1中存放了"1"的个数
CMP R1,1
...
//到这里结束了,R1如果等于1那么有奇数个“1”,否则偶数个“1”
由于共有8位数,最多0b1000个"1",只有R1最低位为1时才是奇数个“1”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_小顾go
2012-11-28 · TA获得超过128个赞
知道答主
回答量:70
采纳率:50%
帮助的人:21.9万
展开全部
mcs-51单片机,奇偶校验位P在程序状态字PSW(特殊功能寄存器)里,PSW.0就是P。
P奇偶校验位。它用来表示ALU运算结果中二进制数位“1”个数的奇偶性。若为奇数,则P=1;否则为0。运算结果有奇数个1,P=1;运算结果有偶数个1,P=0.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斩丨我了个去
2012-11-28 · 超过18用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:51万
展开全部
char par
int i,odd;
for(i=0;i<8;i++)
{
if(par &= 0x01)
odd++;
par >>= 1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式