baceconverter.cpp

来自「QAM module to use in Java with an easy i」· C++ 代码 · 共 65 行

CPP
65
字号
//---------------------------------------------------------------------------


#pragma hdrstop

#include "BaceConverter.h"

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

#pragma package(smart_init)

bool __fastcall BaceConverter::LoadSymbol(int Value)
{
        Buff|=(Value<<BuffPosPtr);
        BuffPosPtr+=NumberOfBitsForInSize;
        if(BuffPosPtr>=NumberOfBitsForOutSize)DataAvailable=true;
         else DataAvailable=false;
        return DataAvailable;
}

bool __fastcall BaceConverter::GetNextSymbol()
{
         if(BuffPosPtr>=NumberOfBitsForOutSize)
         {
                Result=Buff&OutMaxVal;
                Buff=(Buff>>NumberOfBitsForOutSize);
                BuffPosPtr-=NumberOfBitsForOutSize;
         }
         if(BuffPosPtr>=NumberOfBitsForOutSize)DataAvailable=true;
          else DataAvailable=false;
         return DataAvailable;
}

__fastcall BaceConverter::BaceConverter()
{
        SetInNumberOfBits(4);
        SetOutNumberOfBits(8);
}

void __fastcall BaceConverter::SetInNumberOfBits(int NumberOfBits)
{
        InMaxVal=((int)pow(2,NumberOfBits))-1;
        NumberOfBitsForInSize=NumberOfBits;
        Reset();
}

void __fastcall BaceConverter::SetOutNumberOfBits(int NumberOfBits)
{
        OutMaxVal=((int)pow(2,NumberOfBits))-1;
        NumberOfBitsForOutSize=NumberOfBits;
        Reset();
}


void __fastcall BaceConverter::Reset()
{
        Result=-1;
        DataAvailable=false;
        Buff=0;
        BuffPosPtr=0;
        Result=0;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?