二进制中 1 的个数 ——《C/C++ 位运算黑科技 03》
原理
计算一个二进制数中 1 的出现次数其实很简单,只需要不断用 v & (v - 1)
移除掉最后一个 1 即可,原理可以参考这篇文章:2 的幂次方 ——《C/C++ 位运算黑科技 02》
上述方法是一个普通的思考方向,下面我会介绍另外一种思路:并行计数器,来计算二进制数中出现的 1
实际上,我们可以将这个数看作是全部由单位的计数器组成,1、0 就代表单个计数器的状态,我们只要合并相邻的计数器即可,这其实也是归并的思想。
计算一个二进制数中 1 的出现次数其实很简单,只需要不断用 v & (v - 1)
移除掉最后一个 1 即可,原理可以参考这篇文章:2 的幂次方 ——《C/C++ 位运算黑科技 02》
上述方法是一个普通的思考方向,下面我会介绍另外一种思路:并行计数器,来计算二进制数中出现的 1
实际上,我们可以将这个数看作是全部由单位的计数器组成,1、0 就代表单个计数器的状态,我们只要合并相邻的计数器即可,这其实也是归并的思想。
非常坑,之前尝试过使用 yum 直接安装 trousers,会出现 TPM_E_NOAUTH 的问题,现在使用 trousers-0.3.15 进行编译后能够正常进行实验,目前还不清楚是什么包的问题导致的,因此要确保系统是全新的。
CMake 项目中 CMakelist.txt 应该怎么写,才能够实现跨平台编译?
这是我写的一个 CMake 项目的模板仓库:https://github.com/hominsu/cmake-project-layout/tree/main
包括了:
请不要将这个仓库作为一个真正的模版来使用,我希望的是你能从中学习到 CMake 的一些语法和技巧,以及一些工程、架构设计思想,然后自己尝试来写。
先确保你已经安装了:
关于美化 Windows Terminal 及 Powershell,可以查看这篇优秀文章: Windows-Terminal 美化以及通过 OhMyPosh 美化 PowerShell
C++ 11 的一些新特性