知道一个数的高2位和低2位,如何得到这个数?(20分)

  • 主题发起人 主题发起人 rainee
  • 开始时间 开始时间
R

rainee

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的:
aa:integer;
已知:
hiword(aa):=565
loword(aa):=326
如何求得aa的值?
 
var
s:Word;
begin
s:=565 ;
s:=s shl 2;//左移动两位;
s:=s + 326 ;
end;
 
wuchunhua, 你的方法好像不行
 
hiword(aa):=565
loword(aa):=326

实在不明白,你的高两位和低两位都这么大的,可能吗,要是的话,你用的是几进制的数
你的aa为integer,那么中间的位是多少,这些都不知道,你的aa求不出一个准确的值来,只能求出一个范围出来的吧
 
Word 是16位的 两个字节
var
s:Word;
begin
s:=565 ;
s:=s shl 16;//左移动16位;
s:=s + 326 ;
end;
 
移动16位也不行

我把源程序发出来,试一下,行不行
procedure TForm1.Button1Click(Sender: TObject);
var aa :integer;
begin
aa:=36766362;
label1.Caption:=inttostr(loword(aa))+'-'+
inttostr(hiword(aa));//这里得到的是: 666-561
end;

procedure TForm1.Button2Click(Sender: TObject);
var s:word;
begin
s:=561;
s:=s shl 16;
s:=s + 666;
label1.Caption:=inttostr(s);//返回的数和aa不一致
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var s : Integer; //!Word 0..65535 unsigned 16-bit
begin
s:=561;
s:=s shl 16;
s:=s + 666;
label1.Caption:=inttostr(s);//返回的数和aa不一致
end;
 
多人接受答案了。
 
后退
顶部