gpt4 book ai didi

c - C 中的 Bit Hack 看不懂

转载 作者:太空狗 更新时间:2023-10-29 15:52:40 25 4
gpt4 key购买 nike

我在一次采访中被问到这个问题,但仍然无法弄清楚它的作用。谁能解释一下它的作用以及它是如何做到的?

v = v - ((v >> 1) & (T)~(T)0/3);                           // temp
v = (v & (T)~(T)0/15*3) + ((v >> 2) & (T)~(T)0/15*3); // temp
v = (v + (v >> 4)) & (T)~(T)0/255*15; // temp
c = (T)(v * ((T)~(T)0/255)) >> (sizeof(T) - 1) * CHAR_BIT; // count

最佳答案

这里解释一下:

http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel

并行计数位集

A generalization of the best bit counting method to integers of bit-widths upto 128 (parameterized by type T) is this:

v = v - ((v >> 1) & (T)~(T)0/3);                           // temp
v = (v & (T)~(T)0/15*3) + ((v >> 2) & (T)~(T)0/15*3); // temp
v = (v + (v >> 4)) & (T)~(T)0/255*15; // temp
c = (T)(v * ((T)~(T)0/255)) >> (sizeof(T) - 1) * CHAR_BIT; // count

关于c - C 中的 Bit Hack 看不懂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17115694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com