【问题标题】:How to convert NSString of Decimal to NSString of Bytes如何将十进制的 NSString 转换为字节的 NSString
【发布时间】:2010-01-07 06:13:15
【问题描述】:

我有一个非常大的十进制整数值,我将它放入 NSString 中,我需要将这个大值转换为 NSString 的字节值,我该怎么做?仅供参考 NSSting 的长度是“308”

请帮忙

谢谢

【问题讨论】:

  • 我需要二进制格式(字节数组值)。
  • 嗨 Mike 通过下面的代码,当我再次打印为 NSstring 时,我得到了相同的十进制字符串数据,但我应该得到不可读字符的实际二进制数据?
  • 你的意思是一串 308 个字符的 ASCII 数字 [0-9] 的字符串,你想把它转换成二进制格式吗?如果我的估计是正确的,那大约是 100 字节长,或者类似于 800 位整数。您可以编写一个读取一个数字,将其转换为二进制,然后将其乘以 10 的函数。但是您必须自己处理溢出。除非有一个 bignum 库可以做到这一点。

标签: iphone objective-c


【解决方案1】:

为此,您需要执行以下操作(假设您需要 UTF8 编码的字节流):

NSString *myString; //Assuming your string is here
NSData *stringData = [myString dataUsingEncoding:NSUTF8StringEncoding]; //This is the NSData representation of the string
const void *bytes = [stringData bytes]; //This are the raw bit array values

【讨论】:

    【解决方案2】:

    “字节串”是什么意思?

    特别是,NSString 只能封装具有有效 unicode(以及一些更原始的非 unicode)编码的字符串。因此,“字节串”实际上可能没有意义。

    如果您真的想要原始字节,可以使用dataUsingEncoding:* 方法将其转换为 NSData 实例(有两种,取决于需要)。

    【讨论】:

      猜你喜欢
      • 2017-04-03
      • 2012-06-16
      • 2011-05-15
      • 2011-03-04
      • 1970-01-01
      • 2011-11-23
      • 2016-10-01
      相关资源
      最近更新 更多