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

2020-02-02 09:38发布

为什么我用这种方法实现不到的:
uint32 code ;
disp_buff[0] = ( code & 0x80000000 ) / 0x80000000 + '0' ;
...
...
disp_buff[15] = ( code & 0x00010000) / 0x00010000 + '0' ;
Show_String(0,0,disp_buff) ;
先显示前16位,再刷新显示缓冲显示后16位.
有点想不通了,请教一下大家
求最好的算法,大家把想到的方法都贴上来交流下吧,先谢谢大家!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
tiancaigao7
1楼-- · 2020-02-02 10:45
 精彩回答 2  元偷偷看……
downtoearth
2楼-- · 2020-02-02 12:30
tiancaigao7 发表于 2012-5-27 17:09
不就是显示16个数字,不是1就是0,不用真么麻烦,直接判断每一位是不是1,如果是1,就将对应的字符赋值1, ...

是喔,是可以这样的噢,真是搅糊涂了。感激你谢谢!
BXAK
3楼-- · 2020-02-02 12:48
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)[0] );
show_2( ((uint8 *)&co)[1] );
show_2( ((uint8 *)&co)[2] );
show_2( ((uint8 *)&co)[3] );
downtoearth
4楼-- · 2020-02-02 13:44
BXAK 发表于 2012-5-27 17:39
uint32 co;

void show_2( uint8 n )

这个方法好高明呀! 你比我厉害多了!谢谢你!
lampearl982615
5楼-- · 2020-02-02 15:23
都是些牛人!没事来这里逛逛学的东西真不少
大斧
6楼-- · 2020-02-02 19:32
 精彩回答 2  元偷偷看……

一周热门 更多>