在Swift中的ASCII到字符转换的问题

我们在C++里处理字符通常是这样的

char a = ‘A‘ // A = 65
printf("‘%c‘ = %d", a + 1, a + 1) // ‘B‘ = 66

这在号称吸收C/C++所有优势特性的Swift里面是行不通的,因为

Character 和 Int 不能进行计算操作,会报错

var c:Character = "A"
c + 1 // 这里是错误的

Xcode 会告诉你 Binary operator ‘+‘ cannot be applied to operands of type ‘Character‘ and ‘Int‘

于是乎教科书里没有说的内容就带来了问题

网上也没有

但是教科书里说到一个例子中有String.unicodeScalars可以返回字符串的ASCII(或者是Unicode值)的数组。

于是

UnicodeScalar

这个类就被找到了

字符”A”可以这么表示

let A = Character(UnicodeScalar(65))

它的值65可以这么来

let A_ASCII = UnicodeScalar("A") // 65
时间: 2024-10-29 19:05:37

在Swift中的ASCII到字符转换的问题的相关文章

Linux c字符串中不可打印字符转换成16进制

本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的不可打印字符转换成16进制,此处提供一个函数供使用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 void printhex(unsigned char *src,int len) {     

Swift中的错误处理

前言 任何代码都会发生错误,这些错误有些是可以补救的,有些则只能让程序崩溃.良好的错误处理能够让你的代码健壮性提高,提高程序的稳定性. 本文的Swift版本:Swift 3 Objective C 返回nil 如果出错了,就返回空是Objective C中的一种常见的处理方式.因为在Objective C中,向nil发送消息是安全的.比如: - (instancetype)init { self = [super init]; if (self) { } //如果初始化失败,会返回nil ret

一起talk C栗子吧(第一百六十六回:C语言实例--大小写字符转换)

各位看官们,大家好,上一回中咱们说的是C语言中常量的例子,这一回咱们说的例子是:大小写字符转换.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,在程序中经常会用到英文字符,有时候需要把英文字符进行大小写转换.如何进行转换呢?接下来我们一起看看具体的转换方法. 大家都知道每个字符都有相应的ASIIC码,如果把一个字符的ASIIC码加上一个数值就变成了另外一个字符的ASIIC码.比如给字符a的ASIIC码加上1后就成了字符字符b的ASIIC码.基于这个原理,我们可以在小写字符的ASIIC

Swift学习笔记-字符串和字符(Strings and Characters)-比较字符串 (Comparing Strings)

Swift 提供了三种方式来比较文本值:字符串字符相等.前缀相等和后缀相等. 字符串/字符相等 (String and Character Equality) 字符串/字符可以用等于操作符(==)和不等于操作符(!=),详细描述在比较运算符: let quotation = "We're a lot alike, you and I." let sameQuotation = "We're a lot alike, you and I." if quotation

jni中字符转换中文乱码的处理方法

转自:http://blog.sina.com.cn/fangaosjtu 这两天在学习使用jni,在java程序中,调用海量词典的dll.利用jni的GetStringChars函数和NewString函数时,遇到了中文乱码的问题,折腾了一个晚上.查阅了一些资料,总结如下: 一.相关概念 java内部是使用16bit的unicode编码(UTF-16)来表示字符串的,无论中文英文都是2字节: jni内部是使用UTF-8编码来表示字符串的,UTF-8是变长编码的unicode,一般ascii字符

C语言字符转换ASCII码

//函 数 名:CharToHex()//功能描述:把ASCII字符转换为16进制//函数说明://调用函数://全局变量://输    入:ASCII字符//返    回:16进制/////////////////////////////////////////////////////////////////////unsigned char CharToHex(unsigned char bHex){    if((bHex>=0)&&(bHex<=9))        b

Swift 中 String 与 CChar 数组的转换

在现阶段Swift的编码中,我们还是有很多场景需要调用一些C函数.在Swift与C的混编中,经常遇到的一个问题就是需要在两者中互相转换字符串.在C语言中,字符串通常是用一个char数组来表示,在Swift中,是用CChar数组来表示.从CChar的定义可以看到,其实际上是一个Int8类型,如下所示: 1 2 3 4 5 /// The C 'char' type. /// /// This will be the same as either `CSignedChar` (in the comm

字符转换(2,8,10,16进制,ASCII码)

罗列了一些用到的,各进制 以及 ASCII 间的转换,记录备忘 一,先说说 2,8,10 ,16 各进制之间的转化 System.Convert类中提供了较为全面的各种类型.数值之间的转换功能: 几个比较常用的方法  1,Convert.ToInt32(string value, int fromBase)  :将字符串转换为数字(如2进制0010>也就是2^1=2)  fromBase: 顾名思义参数的进制(2,,8,10,16)     2,Convert.Tostring(int valu

字符编码、字符存储、字符转换及工程中字符的使用

字符编码.字符存储.字符转换及工程中字符的使用 版本控制 版本 时间(北京时间) 作者 备注 V1.0 2016-05-13 施小丰 创建本文.第七章工程总结尚未完成 一.          前言 1.        目的 本文主要用于整理字符相关知识,包括字符编码.字符存储.行业标准.文件读写.工程注意事项等涉及字符相关的内容, 从而在实际工程中更好地设计和使用字符.更快地解决字符问题. 2.        适用范围 本文标题是"Windows C++字符编码.存储.转换大全", 但