通常用于解码或者协议数据, 此类数据通常含有 不是8位的数字类型(不等于 一个 byte).
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
- - - - - - - - - - - - - - - -
_____ _____ ______________ ____________
type kind id othertype: 3 bits
kind: 2 bits
id: 5 bits
other: 6 bits这样的记录如何定义使得处理此类数据方便?
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
- - - - - - - - - - - - - - - -
_____ _____ ______________ ____________
type kind id othertype: 3 bits
kind: 2 bits
id: 5 bits
other: 6 bits这样的记录如何定义使得处理此类数据方便?
解决方案 »
- (0F 0F 08 F8 00 00 10 00 01 16 5A 00 03 04 00 校验) 最后那个异或校验码怎么算?
- 如何实现用程序修改注册表的某个项的权限(50分)~~~
- 各位大俠,小弟遇到的怪问题!
- 高手请教:为什么CGI程序出这样的错误啊,请指点???
- 怎样给用Rave设计好的RvProject1\report1\page1\中的Text Component的text属性赋值?在线等待...立即结贴!
- 救命!!解决即给分?
- 各位程序员我有个数据问题要请教你们!
- Edit 能设定最大输入字符数么???
- DELPHI方面的木马程序资料
- 打印问题,很急,给高分!
- 在fastreport中怎样截取一个字符串的左4个字符和右4个字符?
- 请问:如何将一个打开的ADODataset对象中的全部数据记录导出至外部DBF文件
1: $02
2: $04
3: $08
4: $10;
5: $20
6: $40;
7: $80;
8: $100;//9: $200;
//10: $400;
依此类推
传过来的数用Byte来表示,查看第1位是否为1,用:
if (Value and $01) = $01 then
begin
第一位为1
end;
...如果是C/C++,它支持这种情形:
union
{
BYTE type: 3;
BYTE kind: 2;
BYTE id: 5;
BYTE other: 6;
} TData, *LPData;不过pascal不行