我是一名高中学生,目前正在学习Delphi XE3。我们正在学习BIT操作。我们有一个作业,虽然我已经阅读了很多关于这个主题的内容,并且理解了在位上存储信息和SHL/SHR的整个过程,但我仍然难以理解如何在Delphi中执行此过程。
作业如下:
Decimal Hexidecimal Binary
1 0x0001 0000000000000001
2 0x0002 0000000000000010
4 0x0004 0000000000000100
通过在XML文件中传递整数值来标识选项集。例如,如果我想发送选项1和选项2,我会添加1 + 2 = 3。 我将发送3作为数字来指定选项1和2为true。
在客户端,二进制值将为0000000000000011 = 3
根据我的阅读,我需要使用掩码,但我不知道如何做到这一点。我该如何在Delphi中使用掩码,以获取单个的真或假的值?
我尝试在常规整数变量中执行此操作,但它总是被视为整数,并且结果非常奇怪。 如果我将整数转换为二进制字符串表示形式,并遍历字符,则结果是正确的,但我认为我不应该使用字符串进行此操作。任何帮助或示例将不胜感激。谢谢。
(x and 1)<>0
来测试第0位,写(x and 4)<>0
来测试第2位。你应该更直接地问这个问题。 - David Heffernanb shr 4
。或者从一个整数中获取高位字,i shr 16
。或者将两个字合并成一个整数,(w1 shl 16) or w2
。 - David Heffernan