BitAND

按位"与"运算.

BitAND ( 值1, 值2 [, 值 n] )

 

参数

值1 第一个数. 值2 第二个数. 值n [可选参数] 第N个数,最高可计算255个值.

 

返回值

返回所有参数进行按位与运算后的结果.

 

注意/说明

记住数值可使用十六进制符号(0x).
记住当且仅当两位数都是1时才返回1,否则都是0.

 

相关

BitNOT, BitOR, BitShift, BitXOR, Hex, BitRotate

 

示例/演示


$x = BitAND(13, 7) ;x == 5 ,因为 1101 AND 0111 = 0101

$x = BitAND(2, 3, 6) ;x == 2 ,因为 0010 AND 0011 AND 0110 = 0010


BitNOT

按位"取反"运算.

BitNOT ( 值 )

 

参数

值 要操作的数值.

 

返回值

返回对目标数值按位取反后的结果.

 

注意/说明

记住数值可使用十六进制符号(0x).
对于二补码数,BitNOT 的作用相当于在符号位上加1从而使结果符号相反.
记住按位取反操作是把0变为1,或把1变为0.

 

相关

BitAND, BitOR, BitShift, BitXOR, Hex, BitRotate

 

示例/演示



$x = BitNot(5)

#cs 注释:
    结果为 -6,因为 32-位数字对应的:
    5 == 00000000000000000000000000000101 二进制
    -6 == 11111111111111111111111111111010 二进制
    并且第一位带符号.
#ce

BitOR

BitOR 按位"或"运算.

BitOR ( 值1, 值2 [, 值 n] )

 

参数

值1 第一个数. 值2 第二个数. 值n [可选参数] 第N个数,最高可计算255个值.

 

返回值

返回所有参数进行按位或运算后的结果.
位操作使用 32-位整数.

 

注意/说明

记住数值可使用十六进制符号(0x).
BitOR returns 0 in each bit position where all input arguments have a 0 in the corresponding
position and 1 wherever there is at least one 1-bit.

 

相关

BitAND, BitNOT, BitShift, BitXOR, Hex, BitRotate

 

示例/演示


$x = BitOR(3, 6) ;x == 7 因为 0011 OR 0110 = 0111

$x = BitOR(3, 15, 32) ;x == 47 因为 0011 OR 1111 OR 00100000 = 00101111

BitRotate

执行位移操作, 使用旋度.

BitRotate ( 值, 位移 [, 大小] )

 

参数

值 要被操作的值. 位移 Number of bits to rotate to the left (negative numbers shift right). If not given, the default is 1. 大小 [可选参数] A string that determines the rotation size, the default is (16 bits). See below.

Size parameter :
"B" rotate bits within the low-order byte (8 bits). "W" rotate bits within the low-order word (16 bits). "D" rotate bits within the entire double-word (32 bits).

 

返回值

Success: Returns the value rotated by the required number of bits. Failure: Set @error if size is invalid 位操作使用 32-位整数.

 

注意/说明

记住数值可使用十六进制符号(0x).

 

相关

BitShift, BitAND, BitNOT, BitOR, BitXOR, Hex

 

示例/演示


$x = BitRotate(7, 2)
;  x == 3 因为 111b 左移两次是 1 1100b == 28

$y = BitRotate(14, -2)
;  y == 32771 因为 1110b 右移两次 on 16 bits is 1000 0000 0000 0011b == 32771

$z = BitRotate(14, -2, "D")
;  z == -2147483645 因为 1110b 右移两次 on 16 bits is 1000 0000 0000 0000 0000 0000 0000 0011b == 2147483645


BitShift

按位"移"运算.

BitShift ( 数值, 移位 )

 

参数

数值 要进行位移的数值. 移位 右移多少位(负数则左移).

 

返回值

返回按请求数位移后的值.
位操作使用 32-位整数.

 

注意/说明

记住数值可使用十六进制.
每左移一位相当于加倍,右移一位则相当于除以2.

 

相关

BitAND, BitNOT, BitOR, BitXOR, Hex, BitRotate

 

示例/演示


$x = BitShift(14, 2)
;  x == 3 因为 1110b 右移两次是 11b == 3

$y = BitShift(14, -2)
;  y == 56 因为 1110b 左移两次是 111000b == 56

$z = BitShift( 1, -31)
;  z == -2147483648 因为是 2'补码记法, the
;  32nd digit from the right has a negative sign.


BitXOR

按位"异或"运算.

BitXOR ( 数值1, 数值2 [, 数值 n] )

 

参数

数值1 第一个数. 数值2 第二个数. 数值n [可选参数] 第N个数,最高可计算255个数.

 

返回值

返回所有参数进行按位异或运算后的结果.
位操作使用 32-位整数.

 

注意/说明

记住数值可使用十六进制.
记住当且仅当只有一位数是1时BitXOR才返回1,否则都是0.

 

相关

BitAND, BitNOT, BitOR, BitShift, Hex, BitRotate

 

示例/演示


$x = BitXOR(10, 6)  ;x == 12 因为 1010b XOR 0110b == 1100

$x = BitXOR(2, 3, 6) ;x == 7 因为 0010 XOR 0011 XOR 0110 = 0111

Hex

返回一个字符串表示的整数或者二进制数的的十六进制数值.

Hex ( 表达式 [, 长度] )

 

参数

表达式 待转换的表达式. 长度 [可选参数] 要返回的整数的十六进制数的字符数(最高为 8).
若指定的长度过小则这些字符将被从左边开始截断.
当数据类型是二进制类型,此参数会被忽略.

 

返回值

成功: 返回指定长度的字符串,如有需要则自动补零.
返回已转换的二进制类型值. 特殊: 返回一个空字符串(""),说明指定的长度小于1. 失败: 返回一个空字符串("")并把 @error 设为 1,说明指定的长度大于8.

 

注意/说明

这个函数只能工作于32 位有符号整数(signed integer) (-2147483648 到 2147483647)

The function will also set @error to 1 if not enough digits were requested - the returned string will return the least significant digits in this case.

 

相关

Dec, BitAND, BitNOT, BitOR, BitRotate, BitShift, BitXOR

 

示例/演示


$result = Hex(1033, 4)  ;将返回 "0409"

Dec

返回某十六进制数的十进制数值.

Dec ( "hex" )

 

参数

hex 要转换的十六进制字符串.

 

返回值

成功: 返回十进制数字. 失败: 返回值为0,并把 @error 设为 1,说明指定的十六进制数不合法或数值溢出.

 

注意/说明

本函数仅支持32位的带符号整数(-2147483648 到 2147483647)

 

相关

Hex

 

示例/演示


$dec = Dec("FFFF")  ;返回数字 65535



 



没有登录不能评论