procedure FunctionDemo();
var
i: Integer;
dwLongWord, dwPower: LongWord;
btBoolean: array[0..15] of Boolean;
begin
for i := 15 downto 0 do begin
dwPower := Round(Power(2, i));
if dwLongWord >= dwPower then begin
btBoolean[i] := True;
Dec(dwLongWord, dwPower);
end
else
btBoolean[i] := False;
end;
end;
这是自己写代码长了之后琢磨出来的.因为1+2不可能大于4.以此类推.但是不清楚delphi有没有更简洁的方法来实现...
var
i: Integer;
dwLongWord, dwPower: LongWord;
btBoolean: array[0..15] of Boolean;
begin
for i := 15 downto 0 do begin
dwPower := Round(Power(2, i));
if dwLongWord >= dwPower then begin
btBoolean[i] := True;
Dec(dwLongWord, dwPower);
end
else
btBoolean[i] := False;
end;
end;
这是自己写代码长了之后琢磨出来的.因为1+2不可能大于4.以此类推.但是不清楚delphi有没有更简洁的方法来实现...
解决方案 »
- Devexpressvcl安装
- 关闭窗体,显示提示信息方面
- 关于MDIchild窗体的两个问题!
- 本人寻找兼职,本人在广州,那位朋友需要我业余时间帮忙做开发,只限广州内
- delphi7.0中如何判断TQuery中的一个字段的值为空。
- 大家说说CSDN都有哪些缺点,为什么人气这么差,根本没有高手过来,提个问题几天没人应。 我们还有必要守住这片田地吗?
- 给我建议!
- 瞧一瞧了,看一看了啊!如何计算出某字段现在共有几条记录,并显示到窗体上!
- 在DELPHI中在插入数据时,有多项是重复数据,怎么将当前的数据拷贝到下一个新记录上,以免重新录入。在FOXPRO中是用SET CARRY ON 命令,
- 关于tolecontainer的问题,小鸟不懂
- 关于Tstrings是问题
- 数学大侠请进
另外,dword 是32位的数据,你要16位的话是高16位还是低16位啊?
delphi 中有集合类型,没必要往别的类型转
type
//LongWord对应的Boolean数组类型
TLongWordBooleanArray = array[0..15] of Boolean;function LongWordToBooleanArray(Value: LongWord): TLongWordBooleanArray;
//LongWord转换为Boolean数组
var
i : Integer;
begin
for i := 0 to 15 do
begin
Result[i] := Value mod 2 <> 0;
Value := Value shr 1;
end;
end;function BooleanArrayToLongWord(Value: TLongWordBooleanArray): LongWord;
//Boolean数组转换为LongWord
var
i : Integer;
begin
Result := 0;
for i := 15 downto 0 do
begin
Result := Result shl 1;
if Value[i] then inc(Result);
end;
end;
TLongWordBooleanArray = array[0..31] of Boolean;function LongWordToBooleanArray(Value: LongWord): TLongWordBooleanArray;
var
i : Integer;
begin
for i := 0 to 31 do
begin
Result[i] := Value mod 2 <> 0;
Value := Value shr 1;
end;
end;function BooleanArrayToLongWord(Value: TLongWordBooleanArray): LongWord;
var
i : Integer;
begin
Result := 0;
for i := 31 downto 0 do
begin
Result := Result shl 1;
if Value[i] then inc(Result);
end;
end;