函数 | 说明 |
get_bit (varbit a, int b, int c) returns varbit
| 从指定位置b开始获取c个BIT位,返回varbit。 例如: get_bit('111110000011', 3, 5) 返回11000。 |
set_bit_array (varbit a, int b, int c, int[] d) returns varbit
| 将下标位置数组d对应的BIT位设置为b(0或1),超出原始长度的部分填充c(0或1)。 例如: set_bit_array('111100001111', 0, 1, array[1,15]) 返回 1011000011111110。 |
bit_count (varbit a, int b, int c, int d) returns int
| 从第c位开始,统计d个BIT位中有多少个b(0或1),如果超出长度,则只计算已经存在的。 例如:bit_count('1111000011110000', 1, 5, 4) 返回1(0001)。 |
bit_count (varbit a, int b) returns int
| 统计b(1或0)的个数。 例如:bit_count('1111000011110000', 1) 返回8。 |
bit_fill (int a, int b) returns varbit
| 填充b长度的a(0或1)。 例如:bit_fill(0,10) 返回 0000000000。 |
bit_rand (int a, int b, float c) returns varbit
| 填充a长度的随机BIT,并指定b(0或1)的随机比例c。 例如:bit_rand(10, 1, 0.3) 可能返回0101000001。 |
bit_posite (varbit a, int b, boolean c) returns int[]
| 返回b(0或1)的下标位置数组,下标从0开始计数,c为true时正向返回,c为false时反向返回。 例如:bit_posite ('11110010011', 1, true) 返回 [0,1,2,3,6,9,10],bit_posite ('11110010011', 1, false) 返回 [10,9,6,3,2,1,0]。 |
bit_posite (varbit a, int b, int c, boolean d) returns int[]
| 返回b(0或1)的下标位置数组,返回c个为止,下标从0开始计数,d为true时正向返回,d为false时反向返回。 例如:bit_posite ('11110010011', 1, 3, true) 返回 [0,1,2],bit_posite ('11110010011', 1, 3, false) 返回 [10,9,6]。 |
get_bit_array (varbit a, int b, int c, int d) returns int[]
| 从b位置开始获取c个BIT位,返回d(0或1)的下标位置数组。 例如: get_bit_array('111110000011', 3, 5, 1) 返回11000的下标array[3,4]。 |
get_bit_array (varbit a, int b, int[] c) returns int[]
| 查询指定下标位置数组c对应的BIT位为b(0或1)的,返回下标位置数组,超出部分的下标不统计。 例如: get_bit_array('111110000011', 1, array[1,5,6,7,10,11]) 返回array[1,10,11]。 |
set_bit_array (varbit a, int b, int c, int[] d, int e) returns varbit
| 将指定下标位置数组d对应的BIT位设置为b(0或1),设置e位即返回,超出原始长度的部分填充c(0或1)。 例如:set_bit_array('111100001111', 1, 0, array[4,5,6,7], 2) 返回111111001111(设置为1,超出补0,设置满2位即返回)。 |
set_bit_array_record (varbit a, int b, int c, int[] d) returns (varbit,int[])
| 将指定下标位置数组d对应的BIT位设置为b(0或1),超出原始长度的部分填充c(0或1),返回设置后的varbit,同时返回此次操作中被设置为b的下标位置数组。 例如: set_bit_array_record('111100001111', 0, 1, array[1,15]) 返回1011000011111110(设置为0,超出补1)同时返回array[1,15]。 |
set_bit_array_record (varbit a, int b, int c, int[] d, int e) returns (varbit,int[])
| 将指定下标位置数组d对应的BIT位设置为b(0或1),超出原始长度的部分填充c(0或1),设置成功e位即返回,返回设置后的varbit,同时返回此次操作被设置为b的下标位置数组。 例如:set_bit_array_record('111100001111', 1, 0, array[1,4,5,6,7], 2) 返回111111001111(设置为1,超出补0,设置成功2位即返回)同时返回array[4,5](array[1]本身为1,未设置成功)。 |
bit_count_array (varbit a, int b, int[] c) returns int
| 统计指定下标位置数组中0或1的个数。 例如: bit_count_array('1111000011110000', 1, array[1,2,7,8]) 返回3。 |