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

📄 streamhandle.c

📁 一个264程序在NS2下面的仿真程序。非常好用
💻 C
字号:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include "global.h"read_bits_result readbits(unsigned char *pt, int bitpos, int length){  int read,value=0,thisbit,bytepos=0;  unsigned char byte;  float potencia;  read_bits_result result;  byte = *pt;  for(read=0;read<length;read++){        potencia = pow(2.0,length-1-read);    thisbit = (( byte >> 7-bitpos ) & 1) * potencia;    value = value + thisbit;    bitpos++;    if (bitpos == 8){      bytepos++;      pt++;      bitpos = 0;      byte = *pt;    }     }  result.value = value;  result.bytesread = bytepos;  result.bitpos = bitpos;     return result;}read_bits_result uvlc(unsigned char *pt, int bitpos){   int leadingzerobits=0, thisbit, flag, bytepos = 0, length;  unsigned char byte;  read_bits_result rbres1,rbres2;  div_t half;  byte = *pt;  flag = 0;  while(flag == 0) {      thisbit = ( byte >> ( 7 - bitpos)) & 1;    bitpos++;    printf(" Byte: %x\tBytepos: %d\tBitpos: %d\tThisbit: %d\n", byte, bytepos,bitpos,thisbit);    if (thisbit == 0){      leadingzerobits++;      if ( bitpos > 7 ){        bitpos = 0;        bytepos++;         pt++;        byte = *pt;      }    } else {      flag = 1;      if (bitpos > 7){               bitpos = 0;        bytepos++;        pt++;      }      printf("Bytepos: %d\tBitpos: %d\tLeading zero bits: %d\n",bytepos,\	bitpos,leadingzerobits);      rbres1 = readbits(pt,bitpos,leadingzerobits);      printf("Read bits value: %d\tNew byte pos: %d\t New bit pos: %d\n",\	rbres1.value,rbres1.bytesread,rbres1.bitpos);      length = 1 + 2 * leadingzerobits;      half = div(length,2);      rbres2.value = pow(2.0,half.quot) - 1 + rbres1.value;      rbres2.bytesread = bytepos + rbres1.bytesread;      rbres2.bitpos = rbres1.bitpos;      printf("UVLC code: %d\tNew bytes read: %d\tNew bit pos: %d\n",\	rbres2.value,rbres2.bytesread,rbres2.bitpos);       }  }  return rbres2;}

⌨️ 快捷键说明

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