80C51单片机:把一个8位二进制数的各位用
答案:2 悬赏:0
解决时间 2021-03-16 00:30
- 提问者网友:痞子房西
- 2021-03-15 01:27
ASCII码表示(例如,为0的位永30H,为1的位用31H表示等)该数存放在内部RAM的byte单元中。变换后得到8个ASCII码存放在外部RAM以buf开始的存储单元中,试编程实现。
最佳答案
- 二级知识专家网友:废途浑身病态
- 2021-03-15 02:43
unsigned char i,j;
j=0x01;
for(i=0;i<8;i++)
{
if(byte&j)
ram[i]=0x31;
else
ram[i]=0x30;
_crol_(j,1);
}
j=0x01;
for(i=0;i<8;i++)
{
if(byte&j)
ram[i]=0x31;
else
ram[i]=0x30;
_crol_(j,1);
}
全部回答
- 1楼网友:飘零作归宿
- 2021-03-15 03:07
return k 是函数返回值,这是个子函数,处理完后返回给调用函数一个处理后的值。
k=(k<<1)|j;
这个是指k左移一位,在或上j,因为j=sda,看你的写法,据我猜测da是一个芯片的端口,这是串行输入的方式,你要读取芯片的输出值
假设某个时候k=0000 0001,假设j这个时候为1,那执行k=(k<<1)|j;后,k左移一位再或上j就为0000 0011了,一共执行8次,刚好从sda也就是j那里读出了一个字节的数据。
欢迎追问
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |