标题: 请教一个简单的C语言数据转换的问题 [打印本页]

作者: mtt661    时间: 2022-10-14 22:56
标题: 请教一个简单的C语言数据转换的问题
  1.                 unsigned char i,k,l,m=0x3f;
  2.                 bit j;
  3.                 for(i=0;i<8;i++)
  4.                 {
  5.                                 j=m&0x01;        //依次取出低位数据
  6.                                 m>>=1
  7.                                 k=j;
  8.                                  
  9.                         newnum[l++]=k;        
  10.                 }
复制代码

以上运算是不是可以得到一个数组newnum[]={0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00};
作者: adject    时间: 2022-10-14 23:19
的确是这样的
作者: Hephaestus    时间: 2022-10-14 23:20
细节上还有点儿小毛病,比如l没有初始化,但总体思路没有错。
作者: 一事无成    时间: 2022-10-14 23:28
m>>=1; 加“;”另外j是多余的,而且j是bit型和你要的数据类型都不一样,直接newnum[ i]=m&0x01;
  1. unsigned char newmun[8],i,m=0xc0;
  2. for(i=0;i<8;i++)
  3. {
  4.    newmun[i]=m&0x01;
  5.    m>>=1;
  6. }
复制代码

作者: mtt661    时间: 2022-10-15 18:00
一事无成 发表于 2022-10-14 23:28
m>>=1; 加“;”另外j是多余的,而且j是bit型和你要的数据类型都不一样,直接newnum[ i]=m&0x01;

谢谢 我试试
作者: dengweicai    时间: 2022-10-15 18:04
可以,但是还可以优化
作者: MikeCai    时间: 2022-10-17 11:19
代码习惯不好,for 循环内的 i 及k ,m,应该用整型,而不是字符型;否则以后你debug会花更多时间!!!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1