关于delphi数据的位操作的问题。。。急啊。。。

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:27:56
我在这先举个例子。比如一个16进制数68H,转换成2进制是0100 1000.那我想提取其中的一位数据,比如提取第三位的0,怎么提取。又比如要对这8位二进制数进行移位,该怎么写?
我刚开始学DELPHI。。。真的很急啊,或者大家知道这方面内容该看哪部分的书,希望大家告诉下。谢谢了。。。
我把所有积分都给出去了。。希望大家帮忙。

Delphi 的按位运算符共有六个: not and or xor shr shl; 详细说明以及例子程序见:http://www.cnblogs.com/del/archive/2008/04/02/1134311.html

你的16进制数68H可以这样定义:
var x:integer=$68;

判断第三位是否为0的语句是
if (x and 3)=0 then ... else ...

把这个数左移2位的写法是:
x:=x shl 2;

右移是shr

procedure TForm1.Button2Click(Sender: TObject);
var
k:byte;
a:integer;
begin
k:=72; //16进制68 01001000
a:=k shl 2; // 00100000
k:=a;
a:=k shr 7; //右移7位 00000000 a=0
label1.Caption:='a='+inttostr(a);
end;