关于longint类型变量的内存存放顺序----紧急求助

terrace 2003-07-26 08:40:26
我定义了一个longint类型的变量a:=12,在内存中从低地址到高地址各Byte的值依次为12,0,0,0(高位在高地址),现在希望将存放的值逆转,即要使内存中从低地址到高地址各Byte的值依次为0,0,0,12(高位在低地址),以便实现网络传送。不知道该怎么实现?
...全文
133 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljyt 2003-07-27
  • 打赏
  • 举报
回复
汇编指令 XChange:我好象记错了。意思对就行了。
terrace 2003-07-27
  • 打赏
  • 举报
回复
楼上朋友:
你只是得到了转换顺序后的值,并没有改变变量V的内存存放值。
因为服务器是Linux平台,变量在内存中的字节存放顺序正好我机器的相反。
copy_paste 2003-07-26
  • 打赏
  • 举报
回复
>>以便实现网络传送
你什么网络?发个Integer的字节顺序都不一样?
copy_paste 2003-07-26
  • 打赏
  • 举报
回复
好像是这样,没试。
function Change(V: Integer): Integer;
var
I: Integer;
Src, Dst: PByte;
begin
Src := @V;
Dst := Pointer(Integer(@Result) + SizeOf(Integer));
for I := 0 to SizeOf(Integer) - 1 do
begin
Dst^ := Src^;
Inc(Src);
Dec(Dst);
end;
end;
copy_paste 2003-07-26
  • 打赏
  • 举报
回复
好像是这样,没试。
function Change(V: Integer): Integer;
var
I: Integer;
Src, Dst: PByte;
begin
Src := @V;
Dst := Integer(@Result) + SizeOf(Integer);
for I := 0 to SizeOf(Integer) - 1 do
begin
Dst^ := Src^;
Inc(Src);
Dec(Dst);
end;
end;
dext 2003-07-26
  • 打赏
  • 举报
回复
12 shl 24
李_军 2003-07-26
  • 打赏
  • 举报
回复
用hi
和lo函数重新赋值过

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧