我需要将字符串中的每个字符转换为等效的ASCII值/整数值。每个字符串包含六个类似于以下内容的字符:
var str = "20‰/<;"使用上面的字符串,我希望是50,48,137,47,60,59,我能够提取每个字符,但很难将字符转换为它的整数ASCII值。
背景:该字符串表示来自Arduino的6个电压值,使用蓝牙LE串行连接从Arduino传输到iPhone。最初,我试图传输一个类似于'5.0,4.8,13.7,4.7,6.0,5.9‘的字符串,但发现BLE有20个字节的传输限制。因此,我决定如果将电压值乘以10,然后将它们转换为Arduino上的字符,则传输的数据将减少到仅6个字节。我的挑战是将字符转换回电压浮点值。
如果有人有更好的或替代的方法将6个电压值从Arduino传输到iPhone,我会很感兴趣的。电压范围在0- 18伏之间。
发布于 2016-10-26 06:25:41
(回答您提出的问题,但注释是有效的:单个字节可以表示任何范围,只需要一点数学运算……)
从docs
for codeUnit in someString.utf8 {
print("\(codeUnit) ", terminator: "")
}应打印出以空格分隔的ASCII字符数字列表。
因为UTF8代表ASCII字符,所以每个字符的UTF8代码单元应该能满足您的需求。
https://stackoverflow.com/questions/40250670
复制相似问题