免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2449 | 回复: 2
打印 上一主题 下一主题

bcd码to INT程序阅读请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-04 15:38 |只看该作者 |倒序浏览

  1. int BCD2INT(unsigned char *pstr,int num,char * strTemp)
  2. {
  3.        
  4.         unsigned char ch,ch1;
  5.         int i,j;
  6.        
  7.         i=0;

  8.         for(j=0;j<(num/2);j++)//这一个循环的意义何在?
  9.         {

  10.                 ch=pstr[j];

  11.                 ch1=(ch>;>;4); //这个(ch>;>;4)是何作用?
  12.                 if( ch1 >;= 0x0 && ch1 <= 0x9 )
  13.                         strTemp[i++]=ch1+'0'; //还有这个。都看不明白,
  14.                
  15.                 else if ( ch1 == 0x0f )
  16.                         break;

  17.                 ch1=(ch&0x0f);
  18.                 if( ch1 >;= 0x0 && ch1 <= 0x9 )
  19.                         strTemp[i++]=ch1+'0';
  20.                 else if ( ch1 == 0x0f )
  21.                         break;

  22.         }

  23.         strTemp[i]=0;
  24.         return 1;
  25. }
复制代码


有人能帮我解析一下吗?谢谢。

论坛徽章:
0
2 [报告]
发表于 2003-12-05 08:48 |只看该作者

bcd码to INT程序阅读请教

顶上去一下子。帮帮忙。

论坛徽章:
0
3 [报告]
发表于 2003-12-07 11:36 |只看该作者

bcd码to INT程序阅读请教

int BCD2INT(unsigned char *pstr,int num,char * strTemp)
{
   
   unsigned char ch,ch1;
   int i,j;
   
   i=0;

   for(j=0;j<(num/2);j++)//这一个循环的意义何在?
   {           //BCD码是将两个ASC压缩在一里面,所以长度除2

      ch=pstr[j];
   //BCD 0X25 到ASC 就是 0x32 0x35 所以高四位要右移

      ch1=(ch>;>;4); //这个(ch>;>;4)是何作用?
      //这句作用是将高四位数据右移四位
            //经过这一句 就会 ch1 = 0x02
      if( ch1 >;= 0x0 && ch1 <= 0x9 )
         strTemp[i++]=ch1+'0'; //还有这个。都看不明白,
          //这个+'0'就是把数字转换成ASC码 就是+0x30
      else if ( ch1 == 0x0f )
         break;

      ch1=(ch&0x0f);   //这个是对低四位的处理,当然要把高四位清0
      if( ch1 >;= 0x0 && ch1 <= 0x9 )
         strTemp[i++]=ch1+'0';
      else if ( ch1 == 0x0f )
         break;

   }

   strTemp=0;
   return 1;
}


不好意思,语文没学好,
不知道有没有说清楚。
有问题的话fool_cn@hotmail.com
偶也是初学。:-)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP