pub fun popcount(v: u64) u64;
计算置位(1)的数量(汉明权重)
v:要计数的值 ret:v 中 1 位的数量
pub fun clz(v: u64) u64;
计算前导零的数量
如果 v 为 0,则返回 64。
v:值 ret:前导零位的数量
pub fun ctz(v: u64) u64;
计算尾随零的数量
如果 v 为 0,则返回 64。
v:值 ret:尾随零位的数量
pub fun rotate_left(v: u64, n: u64) u64;
向左旋转 n 位
v:要旋转的值 n:位位置数量(掩码为 0..63) ret:v 向左旋转 n 位后的结果
pub fun rotate_right(v: u64, n: u64) u64;
向右旋转 n 位
v:要旋转的值 n:位位置数量(掩码为 0..63) ret:v 向右旋转 n 位后的结果
pub fun byte_swap(v: u64) u64;
反转字节顺序(大端序到小端序或反之)
v:要进行字节交换的值 ret:字节顺序反转后的 v
pub fun bit_reverse(v: u64) u64;
反转所有 64 位
v:要反转的值 ret:所有位顺序反转后的 v