先谢了,请问高手在delphi中如何对2进制的 bit位操作

ruirui 1999-12-30 05:29:00
实时采集的数据传过来的字节中每个位都包含了各种信息,如何对这些位操作?比如读某个位或几个位判断是0还是1...
我是新手,请多指教
...全文
1304 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
monkey 2000-01-01
  • 打赏
  • 举报
回复
其中之一使用左移和右移运算符
kxy 2000-01-01
  • 打赏
  • 举报
回复
{Helper for for one byte flags}
{------------------------------------------------------------------------------}
procedure LMDSetBit(var holder:Byte; bit:Byte; aValue:Boolean);
begin
if aValue then
holder:=holder or (1 shl bit)
else
holder:=holder xor (1 shl bit);
end;

{------------------------------------------------------------------------------}
procedure LMDSetBitUpTo(var Holder:Byte; upTo:Byte);
var
i:Integer;
begin
For i:=0 to upTo do LMDSetBit(Holder, i, True);
end;

{------------------------------------------------------------------------------}
function LMDGetBit(holder, bit:Byte):Boolean;
begin
result:=((1 shl bit) and Holder=(1 shl bit));
end;

给我一些分吧
Zboy 1999-12-30
  • 打赏
  • 举报
回复
使用and运算。‘字节数据’and‘00000001’可截获第一位,如此类推,and ‘00000010’,‘00000100’。。。。。。。
caili 1999-12-30
  • 打赏
  • 举报
回复
使用and
jiangtao 1999-12-30
  • 打赏
  • 举报
回复
这种问题应该查Help,不会查Help编程可就太痛苦了
And
Or
Xor
以下
Shr,
Shl


828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧