?? unchartolong.cpp
字號:
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
// void UintvarEncode(IN DWORD dwUintvar,IN BYTE byLength,IN OUT BYTE **ppPDU)
// 函數(shù)功能:
// 變長無符號整數(shù)編碼,并填入PDU對應(yīng)的位置
// 參數(shù)說明:
// dwUintvar: 輸入?yún)?shù),待編碼的變長無符號整數(shù)
// byLength: 輸入?yún)?shù),變長無符號整數(shù)編碼后的長度
// ppPDU: 輸入輸出參數(shù),指向PDU當(dāng)前位置指針的指針
// 返回值:
//
// 備注:
// 整數(shù)填入了PDU后,PDU當(dāng)前位置指針將后移
// 修改記錄:
// 1: 譚偉基 2007/04/01撰寫
// 2: 譚偉基 2007/04/04修改
//////////////////////////////////////////////////////////////////////////
//void UintvarEncode(IN DWORD dwUintvar,
// IN OUT BYTE **ppPDU)
void UintvarEncode(IN DWORD dwUintvar,
IN BYTE byLength,
IN OUT BYTE **ppPDU)
{
/* int i;
//找出編碼結(jié)果的長度
for (i = 4;(i >= 0)&&(!(dwUintvar>>i*7));i--)
{
}
//對每7bit編碼并填入PDU
for(;i >= 0;i--,(*ppPDU)++)
*/
for(int i = byLength - 1;i >=0;i--,(*ppPDU)++)
{
**ppPDU = (BYTE)((dwUintvar>>i*7)&0x7F)|(!i?0:0x80);
}
}
//////////////////////////////////////////////////////////////////////////
// BYTE GetUintvarLength(IN DWORD dwUintvar)
// 函數(shù)功能:
// 計算出變長無符號整數(shù)編碼后的長度
// 參數(shù)說明:
// dwUintvar: 輸入?yún)?shù),待編碼的變長無符號整數(shù)
// 返回值:
// 變長無符號整數(shù)編碼后的長度
// 備注:
//
// 修改記錄:
// 1: 譚偉基 2007/04/4撰寫
//////////////////////////////////////////////////////////////////////////
BYTE GetUintvarLength(IN DWORD dwUintvar)
{
int i;
if (!dwUintvar)
{
return 1;
}
for (i = 4;(i >= 0)&&(!(dwUintvar>>i*7));i--)
{
}
return i+1;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -