国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ALIGN(x, mask)函數詳解

2019-11-11 06:37:20
字體:
來源:轉載
供稿:網友

ALIGN(x, mask)函數詳解

詳細定義為:

#define ALIGN(x, mask)  (((x) + ((mask)-1)) & ~((mask)-1))

功能為:對x取mask的整數倍,如果x沒有達到mask的最接近整數倍,補值達到最近的整數倍

實例:

設x=5,mask=32

~(mask-1):-32____((x) + (mask-1)):36____((x) + (mask-1)) & ~(mask-1)):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=====33x:  10  mask:  31=====32x:  15  mask:  31=====33x:  16  mask:  31=====32x:  17  mask:  31=====33

2.x和mask必須為整數,且不要為負。

                      


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三门县| 南雄市| 抚宁县| 昌图县| 桐梓县| 新干县| 海宁市| 中西区| 崇阳县| 扎兰屯市| 榕江县| 海伦市| 武乡县| 突泉县| 益阳市| 昌邑市| 沿河| 扎赉特旗| 张家港市| 贡觉县| 威信县| 布尔津县| 天祝| 通海县| 剑阁县| 宽甸| 固原市| 昌图县| 安岳县| 犍为县| 垫江县| 电白县| 五家渠市| 油尖旺区| 绥宁县| 乌海市| 泰来县| 三明市| 山阳县| 香格里拉县| 建湖县|