我是新手,请教各位前辈几个常见问题!
时间:10-02
整理:3721RD
点击:
uchar tmpread(void) //read a byte date
{
uchar i,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tmpreadbit();
dat=(j<<7)|(dat>>1);
}
return(dat);
}
请问dat=(j<<7)|(dat>>1); 这个语句我知道意思,但是就是不知道其中的细节,该怎么去解释这个语句,希望各位前辈能给我讲的细致一些。
void tmpwritebyte(uchar dat) //write a byte to ds18b20
{
uint i;
uchar j;
bit testb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
其中的testb=dat&0x01;
dat=dat>>1;同求细致解读。
{
uchar i,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tmpreadbit();
dat=(j<<7)|(dat>>1);
}
return(dat);
}
请问dat=(j<<7)|(dat>>1); 这个语句我知道意思,但是就是不知道其中的细节,该怎么去解释这个语句,希望各位前辈能给我讲的细致一些。
void tmpwritebyte(uchar dat) //write a byte to ds18b20
{
uint i;
uchar j;
bit testb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
其中的testb=dat&0x01;
dat=dat>>1;同求细致解读。