ALIGN(x, mask)函数详解
来源:互联网 发布:淘宝上的lolita代购 编辑:程序博客网 时间:2024/05/16 18:49
ALIGN(x, mask)函数详解
详细定义为:
#define ALIGN(x, mask) (((x) + ((mask)-1)) & ~((mask)-1))
实例:
设x=5,mask=32
~(mask-1):ffffffe0____((x) + (mask-1)):24____((x) + (mask-1)) & ~(mask-1)):20
从上面可以看出:~(maks-1)=0xffffffe0,是让低位为5个0,再和其它值去&运算,就相当于是其它值小于32位的部分被直接去掉为0,为了达到超过32的目的,需要让除0外的任何一个值都要达到或超过32,
如0,加32-1值,对应为31,去掉小于32的部分,就是0
如1,加32-1值,对应为32,去掉小于32的部分,就是32
如2,加32-1值,对应为33,去掉小于32的部分,就是32
。。。。。。
如31,加32-1值,对应为62,去掉小于32的部分,就是32
如32,加32-1值,对应为63,去掉小于32的部分,就是32
如33,加32-1值,对应为64,去掉小于32的部分,就是64
依次类推:对于前32个数内为0的,保持不变
对于前32个数内,为1~31的,去掉低于32的部分,并加32
高于32部分不受影响。
限制,
1.这个算法,要求mask,必须对应为2^n次方才行,如果不是,就会报错。如mask 为31时的值
x: 5 mask: 31=====33
x: 10 mask: 31=====32
x: 15 mask: 31=====33
x: 16 mask: 31=====32
x: 17 mask: 31=====33
2.x和mask必须为整数,且不要为负。
- ALIGN(x, mask)函数详解
- mask rcnn 中 ROI Align及SmoothL1loss
- iOS mask Layer 详解
- 【转】mask-rcnn详解
- vertical-align属性详解
- memmove和ALIGN函数
- 对齐函数:ALIGN()
- css vertical-align属性详解
- css vertical-align属性详解
- setlogmask(int mask)函数讲解
- Mask-RCNN中的损失函数
- Python3.x字符串函数详解
- cocos2d-x 给Sprite添加Mask(遮罩)
- Starling2.x 遮罩Mask的使用
- .align x 指令作用的直观解释。
- mask
- mask
- Mask
- android.content.res.Resources$NotFoundException: String resource ID #0x37
- 动态加载
- 用c做存储之二:avl树结构、应用场景及实现
- 【POJ2947】 Widget Factory (模线性方程)
- 简单配置过滤器
- ALIGN(x, mask)函数详解
- 机器学习笔记6——决策树
- 获取iPhone手机的内存信息
- 总结:2016年的顶尖优秀开发工具想知道2017年究竟该选择什么开发工具?
- Jquery 如何 获取dropdownlist、RadioButton 选中值
- session存入redis
- [LeetCode]367. Valid Perfect Square
- C# 字符串操作——性能优化细节
- 10-if-判断的基本用法