我需要从NSUinteger或NSString获得BIT长度
我如何获得位长?
由于
答案 0 :(得分:3)
如果我正确地理解了这个问题(这有点奇怪,但是......嘿......我也是):
sizeof(NSUInteger) * 8
[aString maximumLengthOfBytesUsingEncoding: ...] * 8
对于NSNal,NSValue的子类,事情变得有点棘手。你需要调用-objCType,然后从中确定比特长度。
答案 1 :(得分:1)
对于回答这个问题的其他人:从他的其他问题的背景来看,他正试图做一些bignum加密(ala RSA),或者其他一些bignum数论的东西(需要做powermod()
)。同样,基于他的其他问题的背景,他在这个问题中提出的问题是如何做floor(log2(X)) + 1
其中X是任意数据类型(因此NSString
)。
答案 2 :(得分:0)
我有一个RSA Exponent键值,它应该是一个大整数但我在NSString / NSdata中有完整值(UTF8编码)
作为RSA加密的一部分,我需要在Iphone环境中执行以下操作 1.我需要找到上述指数值的位长 2.我需要对指数和模数值进行算术运算,包括PowMod 3.我可以使用哪种数据类型(uint64_t或NSNUmber或NSUinteger)进行算术运算以及保存bigint结果值。 4.我需要去实现一个特定的bigint实现,我可以用bigint管理上面现有的iphone数据类型吗? 5.那些外部bigint实现期望将openssl或gmp lib移植到Iphone?