2010-05-27 45 views

回答

1

查克是正確的,但在回答「對象表示」時,您想要NSNumberunsignedInt方法一起使用。

NSNumber *myNum = [NSNumber numberWithUnsignedInt:2554416000]; 
NSUInteger myInt = [myNum unsignedIntValue]; 
1

2554416000 = 0x9841,4B80≤爲0xFFFF,FFFF(UINT_MAX),所以uint32_tunsigned int)或int64_tlong long)。

一個有符號的int32_tint)無法表示這是因爲0x9841,4B80> 0x7FFF,FFFF(INT_MAX)。將它存儲在int將使其消極。

1

這可以用32位無符號整數表示(UINT_MAX約爲40億)。這實際上就是NSUInteger在iPhone上的功能,但如果你想對位寬進行非常具體的描述,你可以指定一個uint32_t

+0

@Squeegy,你的代碼使用的是有符號整數,而不是無符號整數。嘗試一個無符號整數。 – 2010-05-27 21:10:36

+0

是的,我想通了,刪除了評論,希望你不會看到它,我不會看起來像一個白癡。 – 2010-05-27 21:13:27

+0

@緊急任務完成!多謝你們。 – marty 2010-05-27 21:21:06

0

你可以將其存儲在一個普通INT 1000比例縮小,如果你想,如果這代表一個分數,不可能有底部3位持有任何信息或類似的東西。如果這很重要的話,這將是一種節省幾個位的方法,可能還有一個額外的整數空間。

相關問題