⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bit_res.cpp

📁 一个自己编制的基于pocketPC的mp3播放器
💻 CPP
字号:
/* bit_res.cpp	Implementation of Bit Reservoir for Layer III   Adapted from the public c code by Jeff Tsay. */#include "stdafx.h"#include "all.h"#include "bit_res.h"Bit_Reserve::Bit_Reserve(){	uint32 shifted_one = 1;	offset       = 0;   totbit		 = 0;   buf_byte_idx = 0;	buf          = new uint32[BUFSIZE];	buf_bit_idx  = 8;	putmask      = new uint32[32];   putmask[0] = 0;   for (int32 i=1; i<32; i++)   {   	putmask[i] = putmask[i-1] + shifted_one;      shifted_one <<= 1;   }}Bit_Reserve::~Bit_Reserve (){	delete [] putmask;	delete [] buf;}uint32 Bit_Reserve::hgetbits(uint32 N)// read N bits from the bit stream{   totbit += N;   uint32 val = 0;   int32 j = N;   while (j > 0) {	  if (buf_bit_idx == 0) {   	  buf_bit_idx = 8;	     buf_byte_idx++;/*	if (buf_byte_idx > offset)	  { printf("Buffer overflow !!\n");exit(3); } */     }	  int32 k = ((unsigned long)j < buf_bit_idx) ? j : buf_bit_idx;   // BUFSIZE = 4096 = 2^12, so   // buf_byte_idx%BUFSIZE == buf_byte_idx & 0xfff     int32 tmp = buf[buf_byte_idx & 0xfff] & putmask[buf_bit_idx];     buf_bit_idx -= k;	  tmp = tmp >> buf_bit_idx;     j -=k;     val |= tmp << j;   }   return val;}uint32 Bit_Reserve::hget1bit()// read 1 bit from the bit stream{   uint32 val;   totbit++;	if (buf_bit_idx == 0) {     buf_bit_idx = 8;	  buf_byte_idx++;   }   // BUFSIZE = 4096 = 2^12, so   // buf_byte_idx%BUFSIZE == buf_byte_idx & 0xfff   val = buf[buf_byte_idx & 0xfff] & putmask[buf_bit_idx];   buf_bit_idx--;	val = val >> buf_bit_idx;   return val;}void Bit_Reserve::hputbuf(int32 val)// write 8 bits into the bit stream{   buf[offset] = val;   offset = (offset + 1) & 0xfff;}void Bit_Reserve::rewindNbits(int32 N){	totbit -= N;	buf_bit_idx += N;	while(buf_bit_idx >= 8) {   	buf_bit_idx -= 8;		buf_byte_idx--;	}}void Bit_Reserve::rewindNbytes(int32 N){   totbit -= (N << 3);	buf_byte_idx -= N;}

⌨️ 快捷键说明

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