关于4位组成一个十六位数的方法

 procedure TForm1.Button1Click(Sender: TObject);

const
  cHexChars: array[0..15] of Char = '0123456789ABCDEF';
var
  S: string;
  I, J: Integer;
  A: array of Byte;
  P: PChar;
  vTickCount: Longword; // 计时
begin
  s := ''; //存放结果
  SetLength(A, 10240000); // 测试数据开大一些
  SetLength(S, Length(A) div 4);
  for I := Low(A) to High(A) do //生成测试数据
    A[I] := Random(2);
  P := PChar(S);
  vTickCount := GetTickCount;
  {$R-,O-}
  for I := 0 to Length(S) - 1 do //少循环N次
  begin
    J := I shl 2;
    P^ := cHexChars[
      A[J + 0] shl 3 or
      A[J + 1] shl 2 or
      A[J + 2] shl 1 or
      A[J + 3] shl 0
    ];
    Inc(P);
  end;
  {$R+,O+}

  form1.Caption := IntToStr(GetTickCount - vTickCount); // 输出处理时间

  RichEdit1.Text :=Copy(S, 1, 10240); // 输出部分结果

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值