如何将一个WORD类型的变量赋给一个两个BYTE的数组?在线等。
解决方案 »
- delphi读取excel
- 高分求telnet源码,不用indy的idtelnet的。
- delphi使用ACM函数的问题(mp3->PCM wave)
- delphi中用ado连接Sybase驱动是Sybase.ASEOLEDBProvider.2
- 怎么修改控件?
- 30分﹐请教 delphi开发的两个小问题..有兴趣的请进来……
- 请问下delphi中一个数除另一个数的余数怎么表示??
- 我手动建立好的MDI为什么写了代码运行有错误?
- 求救,如何取得图形的文件名
- 请问给位大侠帮个忙!!!(多分!想要多少分!就多少分呀)
- 问了好久都没人知道???????????
- 在没有安装SQL server 的机器上,怎么使用SQLDMO?(Up,也给分)
var i:word;
j:array [0..1] of byte;
begin
i:=1000;
//如何将i的值赋给数组j呢?
end;
j[1]:=i and $FF00 shr 8;
CopyMemory(Pointer(j[0]),Pointer(@i),2);
不过好象不行,大家说用什么方法?Move?
CopyMemory(Pointer(@j[0]),Pointer(@i),2);
这样就可以了。
比如,使用Hi和Lo函数;
或者干脆用汇编写一个函数,更快 :)
不过还是使用hi lo函数这样配合上循环比较好
CopyMemory(@j[0],@i,2);
var
i: word;
pb: pbyte;pb := @i; //是高位
Inc(pb); //pb,此时是低位
lea si,i
lea di,j
mov [di],[byte ptr si]
inc di
inc si
mov [di],[byte ptr si]
end;
這樣就ok了!
w:word;
b:array [0..1] of byte;absolute w;这样 b[0]=hi(w) b[1]=lo(w)了