Как я могу получить длину битов от NSUintger, NSString - PullRequest
1 голос
/ 05 августа 2009

Мне нужно получить длину BIT от NSUinteger или NSString

Как узнать длину в битах?

Спасибо

Ответы [ 3 ]

3 голосов
/ 05 августа 2009

Если я правильно понимаю вопрос (это немного странно, но ... эй ... я тоже):

sizeof(NSUInteger) * 8

[aString maximumLengthOfBytesUsingEncoding: ...] * 8

Для NSNumber, подкласса NSValue, все становится немного сложнее. Вам нужно будет вызвать -objCType, а затем определить длину в битах.

1 голос
/ 05 августа 2009

ОП: Я действительно думаю, что вам нужно организовать свои мысли и задать один, связный вопрос, который, как минимум, дает представление о том, чего вы пытаетесь достичь. До сих пор вы задали как минимум четыре вопроса, которые все незначительно отличаются друг от друга.

Другим людям, отвечающим на этот вопрос: из контекста своих других вопросов он пытается сделать какую-то криптографию bignum (аля RSA) или какую-то другую работу по теории чисел bignum (необходимо сделать powermod()). Опять же, исходя из контекста его других вопросов, он задает в этом вопросе, как сделать floor(log2(X)) + 1, где X - произвольный тип данных (отсюда NSString).

0 голосов
/ 05 августа 2009

У меня есть значение ключа экспоненты RSA, которое должно быть большим целым, но у меня оно есть в NSString / NSdata с полным значением в (в кодировке UTF8)

Как часть шифрования RSA, мне нужно сделать следующее в Iphone Env 1. Мне нужно найти длину в битах вышеуказанного значения показателя 2. Мне нужно делать арифметические операции над показателями экспоненты и модуля, включая PowMod. 3. Так какой тип данных я могу использовать (uint64_t или NSNUmber или NSUinteger) для арифметических операций, а также для хранения значения результата bigint. 4. Нужно ли мне идти на конкретную реализацию bigint, могу ли я справиться с вышеуказанными существующими типами данных iphone для bigint? 5. эти внешние реализации bigint ожидают портирования openssl или gmp lib на Iphone?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...