在OBJ-C中,我使用以下命令将无符号整数n转换为祸不单行字符串

 NSString *st = [NSString stringWithFormat:@"%2X", n];

我花了很长时间试图把它翻译成SWIFT语言,但没有成功.

推荐答案

您现在可以执行以下操作:

let n = 14
var st = String(f或mat:"%02X", n)
st += " is the hexadecimal representation of \(n)"
print(st)
0E is the hexadecimal representation of 14

注意:本例中的2field width,代表所需的minimum长度.0告诉它在必要时用前导0填充结果.(如果没有0,结果将用前导空格填充).当然,如果结果大于两个字符,字段长度将不会裁剪为宽度2;它将扩展到显示完整结果所需的任何长度.

这仅在您导入了Foundation个(包括导入CocoaUIKit)时才有效.如果您正在进行iOSmacOS编程,这不是问题.

如果需要A...F,请使用大写X;如果需要a...f,请使用小写x:

String(f或mat: "%x %X", 64206, 64206)  // "face FACE"

如果要打印大于UInt32.max的整数值,请在格式字符串中添加ll(el-el,而不是eleven):

let n = UInt64.max
print(String(f或mat: "%llX is hexadecimal f或 \(n)", n))
FFFFFFFFFFFFFFFF is hexadecimal f或 18446744073709551615

Original Answer

您仍然可以使用NSString来执行此操作.格式为:

var st = NSString(f或mat:"%2X", n)

这使得st变成了NSString,所以像+=这样的东西不起作用.如果您希望能够将+=添加到字符串,将st添加到String中,如下所示:

var st = NSString(f或mat:"%2X", n) as String

var st = String(NSString(f或mat:"%2X", n))

var st: String = NSString(f或mat:"%2X", n)

然后,您可以执行以下操作:

let n = 123
var st = NSString(f或mat:"%2X", n) as String
st += " is the hexadecimal representation of \(n)"
// "7B is the hexadecimal representation of 123"

Ios相关问答推荐

当包含UITextView的inputAccessoryView显示键盘时,iOS UITableView内容会出现UINavigationBar奇怪的错误

带有RadStudio 11.3/12的Mac Mini M2(Sonoma 14.2.1)上的PAServer-测试连接按钮有效,但部署不起作用

如何将Safari调试器附加到Turbo-iOS原生应用中的模拟器

为什么iOS委派在KMM中不能正常工作?

一堆UIGraphics方法在iOS 17中被弃用,没有明确的替代方法?

比较 `某个协议` 实例时出现编译错误

如何在用户点击的位置使用SceneKit渲染球体?

动画文本位置

SKScene 的更新功能似乎不起作用

无法在 CollectionView 中禁用部分弹跳 - 组合布局

SwiftUI 中的描边图像边框

过渡动画在 iOS16 中不起作用,但在 iOS15 中起作用

错误:无法根据成员environmentObject推断上下文基础

使用swift将图像转换为A4大小的pdf

通过按钮打开 AppStore

如何更新推送通知服务证书

针对 Xcode 中的 iPad 选项

aps-environment 始终在发展

如何防止 iOS 设备上的显示屏变暗和关闭?

xcode 5.1:libCordova.a 架构问题