类型转换

转载 2007年09月12日 14:47:00

//char:String.c_str()
AnsiString TForm1::BCD_to_AnsiString(char * P_BCD, int length)
{
    //TODO: Add your source code here
    AnsiString returnstring = "";
    char high_char,low_char,temp;
    for( int i=0;i<length;i++ )
    {
        temp = *P_BCD++;
        high_char = (temp&0xf0)>>4;
        low_char = temp&0x0f;

        if( (high_char>=0x00)&&(high_char<=0x09) )
            high_char+=0x30;

        if( (high_char>=0x0A)&&(high_char<=0x0F) )
            high_char+=0x37;

        if( (low_char>=0x00)&&(low_char<=0x09) )
            low_char+=0x30;
        if( (low_char>=0x0A)&&(low_char<=0x0F) )
            low_char+=0x37;

        returnstring += AnsiString(high_char);
        returnstring += AnsiString(low_char);
        returnstring += " ";
    }
    return returnstring;
}


//-------------------------------------------------------------------------------------------------------------------------

AnsiString __fastcall TMenuForm::AnsiString_To_BCD( char * P_BCD, int length )
{
    AnsiString returnstring ;
    char high_char,low_char,temp;

    for( int i=0;i<length;i++ )
    {
        temp        =   *P_BCD++;
        high_char   =   (temp&0xf0)>>4;
        low_char    =   temp&0x0f;

        if(     (high_char>=0x00)
            &&  (high_char<=0x09)
          )
        {
            high_char+=0x30;
        }

        if(     (high_char>=0x0A)
            &&  (high_char<=0x0F)
          )
        {
            high_char+=0x37;
        }

        if(     (low_char>=0x00)
            &&  (low_char<=0x09)
          )
        {
            low_char+=0x30;
        }
        if(     (low_char>=0x0A)
            &&  (low_char<=0x0F)
          )
        {
            low_char+=0x37;
        }

        returnstring += AnsiString( high_char );
        returnstring += AnsiString( low_char );
    }
    return returnstring;
}
//------------------------------------------------------------------------------------------------------------------------------------------
//十进制转为BCD
int __fastcall TForm1::ConvertBCD(int dnum)
{
  int  bcdval=0;
  if( dnum>9999 || dnum < 0 )   return   -1;  
  bcdval   =   (( (dnum/1000)*16+(dnum%1000)/100)*16+(dnum%100)/10   )*16 + dnum%10;
  return   bcdval;  
}
//------------------------------------------------------------------------------------------------------------------------------------------
//BCD转十进制
StrToInt("0x"+BCD_String);
//--------------------------------------------------------------------------------------------------------------------------------------------
再附一个时间延迟函数
//---------------------------------------------------------------------------
//时间延迟函数,单位是毫秒
void __fastcall TForm1::Delay(DWORD DT)
{
    DWORD BeginTime;

    BeginTime = GetTickCount();
    do
    {
        Application->ProcessMessages();
    }while( GetTickCount() - BeginTime <= DT );
}
//-------------- 

相关文章推荐

Unity Image Effect

Antialiasing 抗锯齿 SSAA 模式最快,但是效果最差, 随后是 NFAA, FXAAII, FXAA II, DLAA,FXAAs. 速度随之降低,效果增强Bloom and Lens...

Unity中的image effect总结

这些效果是可以叠加的,部分一起用画面超赞 1.Vignetting 光晕效果 :可以实现场景中的聚焦,以及对中心之外的物体做模糊处理 2.vortexEffect  漩涡状的扭曲效果,可以...

【Unity Shaders】Using Textures for Effects——让sprite sheets动起来

题外话 好久未更新,一些习惯还是应该要好好坚持啊。最近发现Android上一个很好的应用,希望每天可以坚持看一个视频,了解下最新的科技动态和演讲,也推荐给大家使用! 这次内容主要讲如何使用spri...

【Unity Shaders】Vertex & Fragment Shader入门

写在前面

问题

Set RSAllFinanceRecord = conn.Execute("select * from finance where Department = " & Request.Form("De...

【ShaderToy】基础篇之再谈抗锯齿(antialiasing,AA)

写在前面在之前的基础篇中,我们讲到了在绘制点线时如何处理边缘的锯齿,也就是使用smoothstep函数。而模糊参数是一些定值,或者是跟屏幕分辨率相关的数值,例如分辨率宽度的5%等等。但这种方法其实是有...

【OpenGL】详解第一个OpenGL程序

OpenGL能做的事情太多了!很多程序也看起来很复杂。但是!所有O
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)