今天偶然看到一篇:STL空间配置器–《STL源码剖析》读书笔记
讲的是 C++ 内存分配管理的,挺不错。
其中看到一个:ROUND_UP 函数,看到算法我能在脑海里想象到一部分数值的二进制的过程,但是还是用之前自己学习C++写的一个:BitSet 来查看数值计算过程,发现挺有趣的过程。
下面的 "BitSet.h"
就是上面提到的 BitSet
/* a.cpp - jave.lin */
#include
#include "BitSet.h"
// 不成功的数值,因为不是POT
// #define __ALIGN 5
// 可成功的数值,因为是POT
// #define __ALIGN 2
// #define __ALIGN 8
#define __ALIGN 16
// #define __ALIGN 32
// 上调到8的倍数
static size_t ROUND_UP(size_t bytes) {
return (((bytes) + __ALIGN-1) & (~(__ALIGN - 1)));
}
template
static std::string getBSStr(T value) {
std::string ret;
BS::__getStrFormat(value, ret);
return ret;
}
int main() {
std::cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?