首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

DELPHI 中位操作(bitwise)的有关问题

2013-07-08 
DELPHI 中位操作(bitwise)的问题声明了一个Int64类型的变量,最后想将该变量的高32位赋值为0,然后将低32的

DELPHI 中位操作(bitwise)的问题
声明了一个Int64类型的变量,最后想将该变量的高32位赋值为0,然后将低32的值赋给一个DWORD类型的变量。
应该如何处理?
比如:
var
  t: Int64; 
begin
  ...

  //将t的高32设置为0
  t := (t and ?);
  ...
end; DELPHI? bitwise
[解决办法]
左移 shl 
右移 shr  

var
 t:int64;
begin
 t:=hight(int64);//$7FFFFFFFFFFFFFFF
 t:=t shr 32; //$00000000FFFFFFFF 
。。。。

注意符号位
[解决办法]

引用:
首先谢谢sololie的答复。
t声明为64位,有效数字可能为33位,如果右移32位,就只剩1位有效数字了。
这不是我要的结果。结果是要保留后面32位,丢弃前32位。
那你先左移后右移动啊
或者 and $FFFFFFFF 得到的就是低32位的值啊!

热点排行