下面程序中a为int64型,为什么会出现a:=a or (1 shl I);,它是什么意思?结果又是什么??
procedure TUserManageForm.BitBtn3Click(Sender: TObject);
var i: integer; a: int64;
begin
a := 0;
for i := 0 to qx.Items.Count - 1 do
if qx.Checked[i] then
a := a or (1 shl i); //这句是什么意思?结果又是什么??
a := a shl 10;
a := a xor 1234567890;
if adodm.tuser.Locate('用户编号', intptr(man.Selected.Data^).id, []) then
begin
adodm.tuser.Edit;
adodm.tuser.FieldByName('用户权限').Asstring := inttostr(a);
adodm.tuser.Post;
intptr(man.Selected.Data^).qx := a;
end
else
showmessage('没有找到,请重新输入!');
end;
procedure TUserManageForm.BitBtn3Click(Sender: TObject);
var i: integer; a: int64;
begin
a := 0;
for i := 0 to qx.Items.Count - 1 do
if qx.Checked[i] then
a := a or (1 shl i); //这句是什么意思?结果又是什么??
a := a shl 10;
a := a xor 1234567890;
if adodm.tuser.Locate('用户编号', intptr(man.Selected.Data^).id, []) then
begin
adodm.tuser.Edit;
adodm.tuser.FieldByName('用户权限').Asstring := inttostr(a);
adodm.tuser.Post;
intptr(man.Selected.Data^).qx := a;
end
else
showmessage('没有找到,请重新输入!');
end;
解决方案 »
- 在线等待、、、delta问题哇
- 大家讨论一下,在一个10万条记录以上的表中进行查询,平时大家怎样做查询优化的?(思想和方法)
- ***************TwwDBComboBox汉字输入存在问题,哪位高手知道如何解决,或者提供线索?*************
- 今天生日,散分
- 哪里有FTP空间,我把VS 2003 和Msdn2003 上传上去!!!!(
- 在delphi中怎样能够做到禁止数据并发????急用中呀???
- 中国软件的黑幕之最
- 我的传输文件的程序怎么传到4k 就不动了呢 ?
- 怎样能够通过程序把两个甚至多个exe文件连接为一个exe文件呢?(高手们请指教)
- 请问代理服务器的的哪个port是打开的?
- 求救:数字转大写中文
- ‘排序’,急用,帮个忙
//(1 shl i) i左移1位
意思是:
先用i 進行邏輯左移動一位作業
再用得到的值和a 逕行或運算.
作業過程自動轉為2進值逕行的