今天偶然看到一篇: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
关注
打赏
热门博文
- 3D Assets (Textures & Model & Animations) & Game Design Ideas & DCC Tutorials & TA
- LearnGL - 学习笔记目录
- Unity - Timeline 知识汇总
- Unity Graphics - 知识点目录 - 停止翻译,因为发现官方有中文文档了
- Graphic资料
- Unity Lightmap&LightProbe局部动态加载(亲测2020以及以上版本官方修复了)
- Unity - 踩坑日志 - 低版本线性颜色空间渲染异常的 “BUG”
- Unity Shader - PBR 渲染 SP 导出的素材
- 什么是 3A 游戏?
- Photosohp - 实现 2D MetaBall、MetaFont