Мне нужно преобразовать длинное значение из int64 в NSData, чтобы позже я смог запустить алгоритм хэширования для него. Я выполняю:
int64_t longNumber = 9000000000000000000L;
NSMutableData *buffer = [NSMutableData dataWithBytes:&longNumber length:sizeof(longNumber)];
NSLog(@"%lld", [buffer bytes]);
NSLog(@"%lld", longNumber);
Результирующий вывод консоли выглядит следующим образом:
6201314301187184
9000000000000000000
Почему NSData неправильно хранит значение длинного числа? Если я запускаю это в цикле, байты NSData смещаются, начиная с 620, затем 621 и далее. Выводит ли я адрес longNumber через [буферные байты], а не его значение?