📄 bitio.cpp
字号:
// BitIO.cpp: implementation of the CBitIO class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "BitIO.h"
//----------------- Construction/Destruction--------------------------
CBitIO::CBitIO()
{
}
CBitIO::~CBitIO()
{
}
//=====================================================================
//----------------------initialize bit input---------------------------
void CBitIO::start_inputing_bits(FILE *filein)
{
bits_to_go = 0;
garbage_bits = 0;
inputfile = filein;
}
//======================================================================
//---------------------------input a bit--------------------------------
int CBitIO::input_bit()
{
int t;
if ( bits_to_go == 0 )
{
buffer = getc(inputfile);
if ( buffer == EOF )
{
garbage_bits += 1;
if ( garbage_bits > Code_value_bits-2 )
{
//::MessageBox(NULL,"Bad input file\n","Errer");
printf("bad input file");
exit(-1);
}
}
bits_to_go = 8;
}
t = buffer&1;
buffer >>= 1;
bits_to_go -= 1;
return t;
}
//=======================================================================
//----------------initialize for bit input-------------------------------
void CBitIO::start_outputing_bits(FILE *fileout)
{
buffer = 0;
bits_to_go = 8;
outputfile = fileout;
}
//========================================================================
//-------------------------output a bit-----------------------------------
void CBitIO::output_bit(int bit)
{
buffer >>= 1;
if ( bit )
buffer |=0x80;
bits_to_go--;
if ( bits_to_go == 0 )
{
putc(buffer,outputfile);
bits_to_go = 8;
}
}
//=========================================================================
//--------------------flush out the last bits------------------------------
void CBitIO::done_outputing_bits()
{
putc(buffer>>bits_to_go, outputfile);
}
//=========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -