downtoearth 发表于 2012-5-27 16:27:06

如何把32位数据转换成0和1的形式在Lcd1602显示!

为什么我用这种方法实现不到的:
uint32 code ;
disp_buff = ( code & 0x80000000 ) / 0x80000000 + '0' ;
...
...
disp_buff = ( code & 0x00010000) / 0x00010000 + '0' ;
Show_String(0,0,disp_buff) ;
先显示前16位,再刷新显示缓冲显示后16位.
有点想不通了,请教一下大家
求最好的算法,大家把想到的方法都贴上来交流下吧,先谢谢大家!

tiancaigao7 发表于 2012-5-27 17:09:28

不就是显示16个数字,不是1就是0,不用真么麻烦,直接判断每一位是不是1,如果是1,就将对应的字符赋值1,否则赋值0不就好了。
比如:
for(i=0;i<16;i++)
{
if(code&0x80000000)
{
    disp_buf=1;
}
else
{
   disp_buf=0;
}
disp_buf+='0';
code=code<<1;
}
这样不就实现你要的功能了吗?

downtoearth 发表于 2012-5-27 17:37:37

tiancaigao7 发表于 2012-5-27 17:09 static/image/common/back.gif
不就是显示16个数字,不是1就是0,不用真么麻烦,直接判断每一位是不是1,如果是1,就将对应的字符赋值1, ...

是喔,是可以这样的噢,真是搅糊涂了。感激你谢谢!

BXAK 发表于 2012-5-27 17:39:40

uint32 co;

void show_2( uint8 n )
{
   uint8 i;
   for( i=0x80; i ; i>>=1 )
   {
          if( n & i ) L1602_("1");
          else      L1602_("0");
      }
}

show_2( ((uint8 *)&co) );
show_2( ((uint8 *)&co) );
show_2( ((uint8 *)&co) );
show_2( ((uint8 *)&co) );

downtoearth 发表于 2012-5-27 18:04:41

BXAK 发表于 2012-5-27 17:39 static/image/common/back.gif
uint32 co;

void show_2( uint8 n )


这个方法好高明呀! 你比我厉害多了!谢谢你!

lampearl982615 发表于 2012-10-25 11:59:28

都是些牛人!没事来这里逛逛学的东西真不少

大斧 发表于 2012-10-25 12:47:36

一见指针就怕怕{:sweat:}
页: [1]
查看完整版本: 如何把32位数据转换成0和1的形式在Lcd1602显示!