Return TypeFunction nameArguments
hzEcodeReadSerialSINT32(int&,hzChain::Iter&,)

Declared in file: hzCodec.h
Defined in file : hzCodec.cpp

Function Logic:

0:START 1:bNeg 2:!(*zi&0x80) 3:val items 4:*zi&0x30 5:0x00 6:val items val val

Function body:

hzEcode ReadSerialSINT32 (int& nValue, hzChain::Iter& zi)
{
   uint32_t    val ;
   bool        bNeg ;
   bNeg = *zi & 0x40;
   if (!(*zi & 0x80))
   {
       val = *zi & 0x3f;
       zi++ ;
   }
   else
   {
       switch  (*zi & 0x30)
       {
       case 0x00:
                   val = *zi & 0x0f;
                   zi++ ;  val <<&eq; 8; val+= (uchar) *zi ;
                   break ;
       case 0x10:
                   val = *zi & 0x0f;
                   zi++ ;  val <<&eq; 8; val+= (uchar) *zi ;
                   zi++ ;  val <<&eq; 8; val+= (uchar) *zi ;
                   break ;
       case 0x20:
                   val = *zi & 0x0f;
                   zi++ ;  val <<&eq; 8; val+= (uchar) *zi ;
                   zi++ ;  val <<&eq; 8; val+= (uchar) *zi ;
                   zi++ ;  val <<&eq; 8; val+= (uchar) *zi ;
                   break ;
       case 0x30:
                   zi++ ;  val = (uchar) *zi ;
                   zi++ ;  val <<&eq; 8; val+= (uchar) *zi ;
                   zi++ ;  val <<&eq; 8; val+= (uchar) *zi ;
                   zi++ ;  val <<&eq; 8; val+= (uchar) *zi ;
                   break ;
       }
   }
   nValue = bNeg ? -val : val ;
   return E_OK ;
}