15.4.14 位操作
15.4.14.1 BitAnd
说明: BitAnd 用于生成一个逻辑位与的操作,针对 byte 类型数据,如下表:
定义:
BitAnd(BitData1, BitData2);
-
BitData1:数据类型 byte,要操作的字节数据1。 -
BitData2:数据类型 byte,要操作的字节数据2。 -
返回值: 数据类型 byte,表示2个 byte 类型数据执行逻辑与返回的结果。
示例:
VAR byte data1 = 34;
VAR byte data2 = 38;
VAR byte byte3 = BitAnd(data1, data2); // 34
定义 byte 类型变量 data1,赋值 34,定义 byte 类型变量 data2,赋值 38,对 data1 和 data2 执行逻辑与操作,得到 34,赋值给 byte3。
15.4.14.2 BitCheck
说明: BitCheck 用于检查定义的 byte 类型数据的某一位是否为1,若为1则返回 true,否则返回 false。
定义:
BitCheck(BitData, BitPos);
-
BitData:数据类型 byte,要操作的字节数据。 -
BitPos:数据类型 int,要操作位的位置,范围 1~8。 -
返回值:数据类型 bool,true 表示指定位为 1,false 表示指定位为 0。
示例:
VAR byte data1 = 130;
VAR bool b1 = BitCheck(data1, 8) //true;
// 定义 byte 类型变量 data1,赋值 130,检测 data1 第 8 位是否为 1,返回 true。
15.4.14.3 BitClear
说明: 通过 BitClear 可将 byte 或 int 类型的数据某一位置为0。位数从1开始。
定义:
BitClear(BitData | IntData, BitPos);
-
BitData:数据类型 byte,要操作的字节数据。 -
IntData:数据类型 int,要操作的整型数据。 -
BitPos:数据类型 int,要操作位的位置,对于 byte 数据是 1-8,对于 int 数据是 1-32。
示例:
VAR byte data1 = 255;
BitClear data1 1 //254;
BitClear data1 2 //252;
// 定义 byte 类型变量 data1,赋值 255,对 data1 进行 BitClear 操作,将第 1 位置为 0,得到 254,将第 2 位置为 0,得到 252。
15.4.14.4 BitLSh
说明: BitLSh 用于对 byte 数据执行逻辑左移操作。
定义:
BitLSh(BitData, ShiftSteps);
-
BitData:数据类型 byte,要操作的字节数据。 -
ShiftSteps:数据类型 int,要左移的位数,范围 1~8。 -
返回值:数据类型 byte,表示执行左移操作得到的 byte 数据。
示例:
VAR int left_shift = 3;
VAR byte data1 = 38;
VAR byte data2;
data2 = BiLSh(data1, left_shift) //48;
// 定义 byte 类型变量 data1,赋值 38,对 data1 进行左移 3 位操作,得到 48。
15.4.14.5 BitNeg
说明: BitNeg 用于对 byte 数据执行逻辑非操作。
定义:
BitNeg(BitData);
-
BitData:数据类型 byte,要操作的字节数据。 -
返回值:数据类型 byte,表示执行逻辑非操作得到的 byte 数据。
示例:
VAR byte data1 = 38;
VAR byte data2;
data2 = BitNeg(data1) //217;
// 定义 byte 类型变量 data1,赋值 38,对 data1 执行逻辑非操作,得到 217。
15.4.14.6 BitOr
说明: BitOr 用于对 byte 数据执行逻辑或操作。
定义:
BitOr(BitData1, BitData2);
-
BitData1:数据类型:byte,要操作的字节数据 1。 -
BitData2:数据类型:byte,要操作的字节数据 2。 -
返回值:数据类型:byte,表示执行逻辑或操作得到的 byte 数据。
示例:
VAR byte data1 = 39;
VAR byte data2 = 162;
VAR byte data3;
data3 = BitOr(data1, data2); //167
// 定义 byte 类型变量 data1,赋值 39,定义 byte 类型变量 data2,赋值 162,对 data1 和 data2 执行逻辑或操作,得到 167。
15.4.14.7 BitRSh
说明: BitRSh 用于对 byte 数据执行逻辑右移操作。
定义:
BitRSh(BitData, ShiftSteps);
-
BitData:数据类型:byte,要操作的字节数据。 -
ShiftSteps:数据类型:int,要右移的位数,范围 1~8。 -
返回值:数据类型:byte,表示执行右移操作得到的 byte 数据。
示例:
VAR int right_shift = 3;
VAR byte data1 = 38;
VAR byte data2;
data2 = BiRSh(data1, right_shift); //4
// 定义 byte 类型变量 data1,赋值 38,对 data1 进行右移 3 位操作,得到 4。
15.4.14.8 BitSet
说明: 通过 BitSet 可将 byte 或 int 类型的数据某一位置为1,位数从1开始。
定义:
BitSet(BitData | IntData, BitPos);
-
BitData:数据类型:byte,要操作的字节数据。 -
IntData:数据类型:int,要操作的整型数据。 -
BitPos:数据类型:int,要操作位的位置,对于 byte 数据来说是(1-8),对于 int 数据来说是 1-32。
示例:
VAR byte data1 = 0;
BitSet (data1,1); //1
BitSet (data1,2); //3
// 定义 byte 类型变量 data1,赋值 255,对 data1 进行 BitSet 操作,将第 1 位置为 1,得到 1,将第 2 位置为 1,得到 3。
15.4.14.9 BitXOr
说明: BitXOr 用于对 byte 数据执行逻辑异或操作。
定义:
BitXOr(BitData1, BitData2);
-
BitData1:数据类型:byte,要操作的字节数据 1。 -
BitData2:数据类型:byte,要操作的字节数据 2 -
返回值:数据类型:byte,表示执行逻辑或操作得到的 byte 数据。
示例:
VAR byte data1 = 39;
VAR byte data2 = 162;
VAR byte data3;
data3 = BitOr(data1, data2) ;//133
// 定义 byte 类型变量 data1,赋值 39,定义 byte 类型变量 data2,赋值 162,对 data1 和 data2 执行逻辑异或操作,得到 133。