[英]Xcode: Different behavior between swift Int and Objective-C int
我正在嘗試將Swift
function 轉換為Objective-C
。 這是函數的簽名
Swift:
func hammingWeight(_ n: Int) -> Int
Objective-C
-(int) hammingWeight:(int) number
我將此值傳遞給函數/方法:
00000000000000000000000000001011
在 Swift 的情況下,如果我打印 n 的值,它會打印:
p n
(Int) $R2 = 1011
在 Objective-C 的情況下打印:
p number
(int) $0 = 521
我對你們的問題是為什么 Objective-C 正在改變我通過的價值。 對我來說完全是無稽之談。 你們中的任何人都知道為什么會發生這種情況,或者是否有辦法解決這個問題?
非常感謝您對此提供的幫助。
這是完整的 Objective-C 實現:
@interface DoSomething : NSObject
@end
@implementation DoSomething
-(int) hammingWeight:(int) number {
NSLog(@"number %d", number);
}
@end
int main(int argc, char *argv[]) {
@autoreleasepool {
DoSomething *doIt = [DoSomething new];
[doIt hammingWeight:00000000000000000000000000001011];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.