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 + -
显示快捷键?