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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

ALIGN(x, mask)函數(shù)詳解

2019-11-11 05:59:35
字體:
供稿:網(wǎng)友

ALIGN(x, mask)函數(shù)詳解

詳細(xì)定義為:

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

功能為:對(duì)x取mask的整數(shù)倍,如果x沒有達(dá)到mask的最接近整數(shù)倍,補(bǔ)值達(dá)到最近的整數(shù)倍

實(shí)例:

設(shè)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個(gè)0,再和其它值去&運(yùn)算,就相當(dāng)于是其它值小于32位的部分被直接去掉為0,為了達(dá)到超過32的目的,需要讓除0外的任何一個(gè)值都要達(dá)到或超過32,

                         如0,加32-1值,對(duì)應(yīng)為31,去掉小于32的部分,就是0

 如1,加32-1值,對(duì)應(yīng)為32,去掉小于32的部分,就是32

 如2,加32-1值,對(duì)應(yīng)為33,去掉小于32的部分,就是32

                          。。。。。。

 如31,加32-1值,對(duì)應(yīng)為62,去掉小于32的部分,就是32                   

如32,加32-1值,對(duì)應(yīng)為63,去掉小于32的部分,就是32

                       如33,加32-1值,對(duì)應(yīng)為64,去掉小于32的部分,就是64

                     依次類推:對(duì)于前32個(gè)數(shù)內(nèi)為0的,保持不變

                                      對(duì)于前32個(gè)數(shù)內(nèi),為1~31的,去掉低于32的部分,并加32

                                      高于32部分不受影響。

限制,

1.這個(gè)算法,要求mask,必須對(duì)應(yīng)為2^n次方才行,如果不是,就會(huì)報(bào)錯(cuò)。如mask 為31時(shí)的值

x:   5  mask:  31=====33x:  10  mask:  31=====32x:  15  mask:  31=====33x:  16  mask:  31=====32x:  17  mask:  31=====33

2.x和mask必須為整數(shù),且不要為負(fù)。

                      


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 同江市| 溧阳市| 肇源县| 饶阳县| 壤塘县| 荔浦县| 方城县| 黄龙县| 同江市| 土默特右旗| 崇礼县| 武宁县| 黔江区| 米易县| 镇远县| 仪陇县| 眉山市| 怀柔区| 客服| 鹤壁市| 大姚县| 乌海市| 黄浦区| 靖宇县| 临汾市| 阿城市| 德江县| 山阴县| 当涂县| 桑植县| 安多县| 芷江| 逊克县| 盖州市| 铁岭市| 淮滨县| 灵寿县| 盘山县| 昌都县| 吉木乃县| 莱州市|