gpt4 book ai didi

objective-c - 将 NSString 转换为 int HEX

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:04 24 4
gpt4 key购买 nike

我正在尝试将 NSString 转换为 int HEX 数组。

例如,如果我有 @"HELLO" 并且我想得到 0x48 0x45 0x4c 0x4c 0x4f

我已经尝试了字符串的每个字符:

unsigned int hexInt;
sscanf([stringParam UTF8String], "%u", &hexInt);

unsigned int hexInt;
[[NSScanner scannerWithString:stringParam]scanHexInt:&hexInt];

它们似乎都不起作用。

从 ASCII NSString 获取 unsigned int res[] 的最佳方法是什么?

最佳答案

不是真正的答案,但我怀疑原始问题混淆了“十六进制”和“二进制”之间的区别。现代计算机内部的所有数据都以“位”(1 和 0)进行操作。 “整数”通常是 32 或 64 个 1/0 组合在一起。一个“字符”是 8、16 或 32 个 1/0,具体取决于特定的字符集和上下文。

为了让人类能够检查这些电子 1 和 0,它们必须以某种人类可读的形式呈现。最简单的是“二进制”——例如,00001010 二进制的数值为 10(十进制)。由于二进制不是很紧凑,所以发明了“八进制”。在八进制中,00001010 二进制值为 012。

但是大多数计算机“字”都是8位的一些倍数,而八进制并不能均匀表示8位的倍数,所以发明了“hex”(“十六进制”)。在十六进制中,00001010 表示为 0A。

这意味着您将某些内容“转换”为十六进制的唯一时间就是显示它。但是新手经常对这一点感到困惑,并认为将字符转换为数字内部表示就是“将其转换为十六进制”。

事实上,字符已经拥有数字内部表示——这只是提取单个字符并(可选)将其“转换”为整数类型的简单问题(注意“转换”不会更改值,只是可以存储它的变量类型。

在他的最后一句话中,OP 表示他想要一个 int 值数组。各个 NSString 字符已经是整数,只是 unichar 类型。 “转换”为整数只是转换为所需目标类型的问题。

关于objective-c - 将 NSString 转换为 int HEX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14195871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com