请教各位,小弟学delphi不久,遇到点byte存放16进制的问题,真诚请教各位高手, 
a0,a1,a2:word;
aa:array[0..10] of byte;
for i:=0 to 300 then begina0:=$0001; //a0取两个值 $0001  或者$0002;假如现在i:=255,,通过移位和或操作,我想利用aa[1]和aa[2] 来存放,得到  0F F1(16进制)
  
不知道怎么解决,望各位指点,谢谢!

解决方案 »

  1.   

    小弟自己解决了一点点,但是还有一些问题,
    a0,a1,a2:word;
    aa:array[0..10] of byte;
    bb:array[0..1] of byte;
    i:=255;
    a3:byte;a3:=$0001;
    bb[0]:=byte(i);
    bb[1]:=byte(i shr 8);
    //可是现在我的bb[0]和bb[1] 还不是我想要的值 
    a0:=bb[0]+bb[1];
    a1:=word(a0) shl 4;
    a2:=a1 or a3; //这个值才是我想要的
      这里就不明白怎么把a2的值赋给aa[0]和aa[1] 
      

  2.   

    a2:word;
    aa:array[0..1] of byte absolute a2;这样你访问aa的时候也就是在访问a2了
      

  3.   

    只是我没有过深去看,下面代码若不对aa[0]和aa[1]的位置换一下即可:aa[0]:=Byte((a2 shl 8) and $FF);//取高八位
    aa[1]:=Byte(a2 and $FF);        //取低八位
      

  4.   

    非常感谢 unsigned(僵哥),问题已经解决! 有机会还要向你学习哟  :)
      

  5.   

    pascal里面word类型好像高低位置和大家原来说的高低位正好反过来!!!
      

  6.   

    To 楼上的楼上:不是pascal里面,是你用的处理器的原因