位计数
popcnt 指令,即“population count”(人口计数)的缩写,用于计算数字二进制表示中 1 的数量。
试一试
(module
(func (export "count1s") (param $num i32) (result i32)
;; load the number onto the stack
local.get $num
;; count the amount of 1s and return the result
i32.popcnt
)
)
const url = "{%wasm-url%}";
await WebAssembly.instantiateStreaming(fetch(url), { console }).then(
(result) => {
const count1s = result.instance.exports.count1s;
console.log(count1s(0b10000010));
// Expected output: 2
},
);
语法
wat
;; load a number onto the stack
i32.const 130 ;; 10000010
;; count the 1s
i32.popcnt
;; the top item on the stack will now be 2
| 指令 | 二进制操作码 |
|---|---|
i32.popcnt |
0x69 |
i64.popcnt |
0x7b |