将十六进制字符串转换为十六进制数据

2023-12-04

我目前有一个NSString包含十六进制值。我需要转换这个NSString对象变成NSData对象,根本不改变其内容。


我使用此代码将 NSData 对象的调试输出(如果您只是 NSLog 一个 NSData 对象,则在控制台中得到的内容)“解析”回 NSData:

-(NSData*) bytesFromHexString:(NSString *)aString;
{
    NSString *theString = [[aString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] componentsJoinedByString:nil];

    NSMutableData* data = [NSMutableData data];
    int idx;
    for (idx = 0; idx+2 <= theString.length; idx+=2) {
        NSRange range = NSMakeRange(idx, 2);
        NSString* hexStr = [theString substringWithRange:range];
        NSScanner* scanner = [NSScanner scannerWithString:hexStr];
        unsigned int intValue;
        if ([scanner scanHexInt:&intValue])
            [data appendBytes:&intValue length:1];
    }
    return data;
}

这不是我最健壮的代码,但它完成了解析 [nsdata_object description] 的工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将十六进制字符串转换为十六进制数据 的相关文章

随机推荐

  • Linux 内核中的 sys_execve() 系统调用可以同时接收绝对路径或相对路径吗?

    Shall sys execve 在内核级代码中接收绝对或相对路径filename范围 sys execve可以采用绝对路径或相对路径 我们通过以下方式来验证一下 尝试原始系统调用 阅读内核源代码 在内核 QEMU上运行GDB来验证我们的源
  • 需要一个 shell 脚本将逗号分隔符更改为管道分隔符

    我的输入看起来像 130 00 2 200 00 1 230 63 等等 我的问题是如何将逗号分隔符更改为 分隔符而不删除实际输入中的逗号 只是为了澄清此输入位于具有 40 列和 9500 行的 csv 文件中 我希望我的输出看起来像 13
  • 可以从 dotnet core 1 访问嵌套引用

    我使用 dotnet core 为我的 Web 项目创建了业务和数据访问层 我在业务层中添加了数据访问引用 并在 UI Web 项目 层中引用了业务层 我看到 我可以从我的 UI Web 项目访问我的数据访问层 我真的很想知道 它可能会导致
  • 无论如何比较int和drawable?ANDROID

    无论如何可以将 s 与 a 进行比较吗 在此代码中 我将 int 作为答案 如果drawable s然后我想显示一个 Correct 祝酒消息 任何帮助 将不胜感激 btn1 setOnClickListener new OnClickLi
  • 哈希函数在 ColdFusion MX7 和 PHP 5.x 上的工作方式相同吗?

    我正在处理旧版 ColdFusion MX7 站点 他们想要实现一个 加盐哈希 密码系统 但在明年左右的某个时候 他们计划建立一个全新的 PHP 网站 并且不想重置 丢失 所有密码 所以我正在寻找一些可以在两个平台上运行的代码 我对此很陌生
  • 导航栏中的 UISearchBar

    如何在导航栏中显示 UISearchBar 我不知道该怎么做 非常感激你的帮助 要将搜索栏放入导航栏的中心 self navigationItem titleView self searchBarTop 要将搜索栏放在导航栏的左侧 右侧 U
  • 如何更改android 4.2.2中操作栏的高度

    是否可以更改操作栏的高度 我尝试过 ActionBar setCustomView view layoutparams 但无法更改高度 请提出建议 任何帮助将不胜感激 要设置 ActionBar 的高度 您可以创建一个新文件主题 xml在你
  • 如何在表格单元格中显示多行文本

    我想将数据库中的一段显示到表格单元格中 结果是一大行 1 行 忽略它在数据库中的组织方式 例如忽略 输入 新行 我想按照数据库中的写入方式准确地显示它 例如 如果段落像这样保存 hello my name is x 我希望它完全像那样显示
  • 在客户端启用 CORS

    我正在创建一个将在我无法管理或修改的服务器上运行的 Web 应用程序 在该应用程序中 我需要对不同的服务器执行 AJAX 调用 这将始终被 同源策略 阻止 其中 server01 test net 是网络服务器 mail test net
  • 使用对象列表填充 UserControl Gridview

    我有一个名为 原因 的对象列表 其中包含两个属性 代码 和 文本 我想用它来填充 Gridview 的 UserControl 但是 我不明白如何将 gridview 链接到原因列表并实际设置要使用对象中的哪些数据 我假设该方法是将数据源设
  • 适用于旧版本 python 的 OrderedDict

    有序字典是非常有用的结构 但不幸的是 这些是最近才在以下版本中工作的 3 1 and 2 7 如何在旧版本中使用有序字典 我用 pip 在 python 2 6 上安装了ordereddict pip install ordereddict
  • 如何编写非阻塞的javascript代码?

    如何进行简单的非阻塞 Javascript 函数调用 例如 begin the program console log begin nonBlockingIncrement 10000000 console log do more stuf
  • 如何使用 JS 构建我自己的甘特图 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我想看看 HTML5 画布
  • 使用 UpdateResource 更新字符串表

    我在这里问了这个问题 通过 UpdateResource 更新 STRING TABLE 添加多个字符串 现在我再次提问 因为这次我可以为问题添加更多细节 I ve been trying this for the past day or
  • Azure DevOps 多级管道 YAML:如何签出多个存储库?

    我的 Azure DevOps 管道使用来自两个不同存储库的 yaml 模板 其配置如下 有一个应用程序存储库 其中包含可部署的应用程序和一个 yaml 文件 管道的 根 模板 模板存储库 根模板从模板存储库调用其他模板和阶段 然后此存储库
  • PHP创建txt文件并将其保存到根目录

    我正在尝试创建一个文件并将其保存到我的网站的根目录 但我不知道它在哪里创建该文件 因为我看不到任何文件 而且 如果可能的话 我需要每次都覆盖该文件 这是我的代码 content some text here fp fopen myText
  • 发送 Select + Transport Key 后的 JCOP 0x6A82

    您好 我有一张 JCOP 卡未熔断 我从我的供应商处获得了 TK 和开卡命令 当我发送到卡时 00 a4 04 00 10 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 我有 6a 82 F
  • 如何简化这个程序?

    主要功能如下代码 f is a function that has two parameters and returns one value f lt function a b a b x is a s value group x lt c
  • 解释 stdscr 中的“ENTER”按键(Python 中的 curses 模块)

    我正在使用Python的curses模块 在 stdscr 中 每当我按 Enter 键时 curse 就会移动到同一行中的第一列 我对此有几个问题 这是什么原因呢 有没有办法把诅咒移到下一行 如果我想在按下回车键时执行某些操作 执行某些功
  • 将十六进制字符串转换为十六进制数据

    我目前有一个NSString包含十六进制值 我需要转换这个NSString对象变成NSData对象 根本不改变其内容 我使用此代码将 NSData 对象的调试输出 如果您只是 NSLog 一个 NSData 对象 则在控制台中得到的内容 解