iOS 當NSUInteger等于-1
array.count 是一個無符號整型证鸥,當它被賦值成-1的時候,就會變成一個大的數(shù)枉层。
這就是以下判斷條件不成立的原因。
NSUInteger
在計算機中兴枯,數(shù)字是用“補碼”表示的。
正數(shù)的補碼 = 原碼 = 反碼悠夯;
負數(shù)的補碼 = 反碼 (原碼取反,最高位符號位不取反) +1 沦补;
64位的下,-1的補碼為:
原碼:
1000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0001
反碼:
1111 1111 1111 1111 1111 1111 1111 1111
1111 1111 1111 1111 1111 1111 1111 1110
補碼:
1111 1111 1111 1111 1111 1111 1111 1111
1111 1111 1111 1111 1111 1111 1111 1111
所以這個很大的數(shù)就是這樣算出來的虚倒。
有關(guān)無符號為負數(shù)時可以參考:http://blog.chinaunix.net/uid-26495963-id-3075227.html