如何把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位.
有点想不通了,请教一下大家
求最好的算法,大家把想到的方法都贴上来交流下吧,先谢谢大家! 不就是显示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;
}
这样不就实现你要的功能了吗? tiancaigao7 发表于 2012-5-27 17:09 static/image/common/back.gif
不就是显示16个数字,不是1就是0,不用真么麻烦,直接判断每一位是不是1,如果是1,就将对应的字符赋值1, ...
是喔,是可以这样的噢,真是搅糊涂了。感激你谢谢! 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) ); BXAK 发表于 2012-5-27 17:39 static/image/common/back.gif
uint32 co;
void show_2( uint8 n )
这个方法好高明呀! 你比我厉害多了!谢谢你! 都是些牛人!没事来这里逛逛学的东西真不少 一见指针就怕怕{:sweat:}
页:
[1]