首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

byte数组读取有关问题

2013-07-16 
求助:byte数组读取问题比如我要从28位开始读取2个字节转成整形,从34开始读取4个字节转成整形,该如何处理。[

求助:byte数组读取问题
比如我要从28位开始读取2个字节转成整形,从34开始读取4个字节转成整形,该如何处理。
[解决办法]


c : array[0..49] of byte;
idx : integer;
---------
result := 0;
for idx := 27 to 28 do
begin
  result := (result shl 8) or c[idx];
end;
//c : 改为byte数组,nDigits为长度
function Calculate(c: PChar; nDigits: Integer): Integer;
  var n : Integer;
begin
  Result := 0;
for n := 0 to nDigits - 1 do
Result := ( Result shl 8 ) or  Byte(c[n]);
end;

[解决办法]
var
 CBS : array [0..99] of Byte;
  n1 : SmallInt;
  n2 : integer;
begin
  ...
  n1 := PSmallInt(@CBS[27])^; //28位开始读取2个字节转成整形
  n2 := PInteger(@CBS[33])^;  //从34开始读取4个字节转成整形

热点排行