ulong을 uint32로 변환하려면 어떻게해야합니까? 간단한 캐스트가 작동하지 않습니다. 나에게 맞는 것은 long을 문자열로 변환 한 다음 문자열을 다시 int로 구문 분석하는 것입니다.Objective-C - ulong to uint32
그러나 이것은 실제로 잘못된 것처럼 보입니다. 더 좋은 방법이 있습니까?
ulong을 uint32로 변환하려면 어떻게해야합니까? 간단한 캐스트가 작동하지 않습니다. 나에게 맞는 것은 long을 문자열로 변환 한 다음 문자열을 다시 int로 구문 분석하는 것입니다.Objective-C - ulong to uint32
그러나 이것은 실제로 잘못된 것처럼 보입니다. 더 좋은 방법이 있습니까?
Paul R이 말했듯이 "단순한 캐스트"가 무슨 뜻인지 확실하지 않습니다. 다음 두 가지가 모두 잘 작동합니다 (참고로 ULONGLONG으로 테스트 중입니다).
직접 캐스트 :
unsigned long long val1 = (unsigned long long)75;
UInt32 val2 = (UInt32)val1;
NSLog(@"%qu, %lu", num1, num2);
// OUTPUTS: 75, 75
가의 NSNumber 사용 :
NSNumber* val1 = [NSNumber numberwithUnsignedLongLong:75];
NSNumber* val2 = [NSNumber numberwithUnsignedInteger:[val1 usignedIntegerValue]];
NSLog(@"%qu, %u", [num1 unsignedLongLongValue], [num2 unsignedIntegerValue]];
// OUTPUTS: 75, 75
당신이 무엇을 의미합니까 정확히 "간단한 캐스트가 작동하지 않습니다"? 발생하는 정확한 컴파일러 오류 메시지 또는 런타임 문제는 무엇입니까? –
값이 75 인 ulong을 캐스팅하면 값 2147483647 인 uint32가 생성됩니다. – oipoistar
여기서 'ulong' 유형은 어디에서 얻습니까? 그것의 정의는 무엇입니까? 캐스트가 어떻게 생겼습니까? –