首先我有一个序列号是4个字节的,然后我取它的低两个字节,然后再加上任意四个字节,总共加在一起是六个字节,然后我对这六个字节取CRC校验呀,不过我不知道四个字节加上两个字节就是六个字节就48位,计算机中的整数位最多是否32位呀,我怎样把低两个字节与后面的四个字节相连呀

解决方案 »

  1.   

    var
      I,L2I,J: Integer;
      K: Smallint;
      R: Int64;
    begin
      I := $FFFF123F;
      J := $4321FE2B;
      L2I := I shl 16 shr 16; //或者直接K := I;
      ShowMessage(IntToStr(L2I)+'等于:'+IntToStr($123F));
      //低两个字节L2I与后面的四个字节J相连
      R := J; //先扩大容量,如果直接R := (I shl 16) or L2I;则I shl 16超出32位,导致结果错误
      R := (R shl 16) or L2I;
      ShowMessage(IntToStr(R)+'等于:'+IntToStr($4321FE2B123F));
    end;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————