读书人

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

发布时间: 2013-07-08 14:13:00 作者: rapoo

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位的值啊!

读书人网 >.NET

热点推荐