跳到主要内容

15.4.14 位操作

15.4.14.1 BitAnd

说明: BitAnd 用于生成一个逻辑位与的操作,针对 byte 类型数据,如下表:

15.4.14.1

定义:

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。