📄 baceconverter.cpp
字号:
//---------------------------------------------------------------------------
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -