2013-09-01 22 views

回答

2

那麼,0x1就是1的十六進制值,它在二進制中表示爲〜001。當您將0位移位應用到0x1時,該值不變,因爲您並未實際移動任何內容。當你移動1時,你正在查看一個〜010的表示,其中好的數字是2,因爲在兩列中有1,而在其他地方有零。因此,的值比uint32_t j = 0x1 << 1;小。

uint32_t i = 0x1 << 0; 
uint32_t j = 0x1 << 1; 

NSLog(@"%u",i); // outputs 1 
NSLog(@"%u",j); // outputs 2