• 这里所说的转换,并不是Swift中字面量之间的转换。如果是字面量之间的转换,ios系统中已经自动帮我们转换了。

例如
let number1:Int = 8
let number2:Int = 0b1000
let number3:Int = 0x8
这三个常量都是同一个值。

  • 接下来要写的是真正意义上的进制之间转换

1.十进制转二进制

//十进制转二进制,返回的是字符串格式
String(15,radix:2) 返回为“1111”
//如果再想把字符串格式改成整型格式
let number = String(15,radix:2)
Int(number) 返回为1111

2.二进制转十进制

func binary2dec(num:String) -> Int {
var sum = 0
for c in num.characters {
sum = sum * 2 + Int("\\(c)")!
}
return sum
}
binary2dec("1111") 返回为15

3.十进制转十六进制

//十进制转十六进制,返回的是字符串格式
String(15,radix:16)

4.十六进制转十进制

//如果想逼格高点,可以稍微扩展一下String
extension String{
static func changeToInt(num:String) -> Int {
let str = num.uppercaseString
var sum = 0
for i in str.utf8 {
sum = sum * 16 + Int(i) - 48 // 0-9 从48开始
if i >= 65 { // A-Z 从65开始,但有初始值10,所以应该是减去55
sum -= 7
}
}
return sum
}
}
String.changeToInt(number2)
//当然也可以不必扩展String,定义一个函数即可。
func changeToInt(num:String) -> Int {
let str = num.uppercaseString
var sum = 0
for i in str.utf8 {
sum = sum * 16 + Int(i) - 48 // 0-9 从48开始
if i >= 65 { // A-Z 从65开始,但有初始值10,所以应该是减去55
sum -= 7
}
}
return sum
}
changeToInt("f")

至此,已经写完平时敲码积累的小心得,希望可以帮助大家对进制转换游刃有余啦。

作者:ChinaSwift
链接:http://www.jianshu.com/p/34d5e958910a
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Swift_ios_二进制,十进制,十六进制之间的转换的更多相关文章

  1. C# 二进制 十进制 十六进制 之间的转换

    ; Console.WriteLine(a.ToString("X")); //10进制转16进制 Console.WriteLine(Convert.ToString(a, )) ...

  2. [原创]PostgreSQL中十进制、二进制、十六进制之间的相互转换

    在PostgreSQL中,二进制.十进制.十六进制之间的转换是非常方便的,如下: 十进制转十六进制和二进制 mydb=# SELECT to_hex(10); to_hex -------- a (1 ...

  3. Delphi进制转换(二进制/十进制/十六进制)

    http://www.cnblogs.com/ywangzi/archive/2012/12/12/2815219.html   Delphi进制转换(二进制/十进制/十六进制)  2009-11-2 ...

  4. ASCII码表(二进制 十进制 十六进制)

    css里,允许使用转义字符\+ascii16进制形式; 例如: e的ascii 16进制是65,我们就写为\65 expression -> expr\65ssion 二进制 十进制 十六进制 ...

  5. [Swift]二进制、八进制、十进制、十六进制之间的转换

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  6. 【PHP】php实现二进制、八进制、十进制、十六进制之间各自转换的函数

    <?php /* 常见的进制: 二进制 binary -----> bin 八进制 octal -----> oct 十进制 decimal -----> dec 十六进制 h ...

  7. Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换

    public class DigitalTrans { /** * 数字字符串转ASCII码字符串 * * @param String * 字符串 * @return ASCII字符串 */ publ ...

  8. [javaSE] 进制转换(二进制十进制十六进制八进制)

    十进制转二进制,除2运算 十进制6转二进制是 110  (注意从右往左写,使用算式从下往上写) 二进制转十进制,乘2过程 二进制110转十进制  0*2的0次方+1*2的1次方+1*2的2次方=6 对 ...

  9. 二进制&八进制&十六进制之间的快速转换------ 心算&笔算方法总结

    二进制数                   0&1两种元素: 8进制数                   0-7 八种元素: 十六进制数            0-9,a,b,c,d,e, ...

随机推荐

  1. 取消VS2017窗口置顶

    今天打开VS2017,莫名其妙窗口置顶了,百度了一下如何取消窗口置顶,就是Ctrl+Alt+Esc组合键,就可以取消窗口置顶了,至于到底怎么会突然置顶的我也不知道emmm... /********** ...

  2. jquery中的left和top

    left 和 top /*1. 获取元素基于定位容器的位置*/ /*返回的是对象 属性 left top */ var position = $('.inner').position(); conso ...

  3. iis 7.5 ftp site用户名不能是 'ftp'?

    在windows server 2008 r2上配置一个iis ftp site,创建了一个名为 ftp 的账号,并添加到允许规则中,可总是出现: Connected to ***.***.***.* ...

  4. 推荐系统入门:作为Rank系统的推荐系统(协同过滤)

    知乎:如何学习推荐系统? 知乎:协同过滤和基于内容的推荐有什么区别? 案例:推荐系统实战?  数据准备:实现推荐栏位:重构接口:后续优化. 简书:实现实时推荐系统的三种方式?基于聚类和协同过滤:基于S ...

  5. html 复杂表格

    123456789 123456789 0000000000 日期 123456789 1234560000000789 ----------- ----------- ----------- --- ...

  6. Asp.Net Core 中利用QuartzHostedService 实现 Quartz 注入依赖 (DI)

    QuartzHostedService  是一个用来在Asp.Net Core 中实现 Quartz 的任务注入依赖的nuget 包: 基本示例如下: using System; using Syst ...

  7. PHP共享内存

    如何使用 PHP shmop 创建和操作共享内存段,使用它们存储可供其他应用程序使用的数据. 1. 创建内存段 共享内存函数类似于文件操作函数,但无需处理一个流,您将处理一个共享内存访问 ID.第一个 ...

  8. [luogu2054 AHOI2005] 洗牌 (数论)

    传送门 Solution 我们考虑每一步牌的变化: 前半部分的牌位置*2 后半部分的牌位置*2-n-1 那么我们可以看做是\(x\times 2^m\equiv l \pmod n\) 于是求个逆元就 ...

  9. GreenPlum 集群常用命令

    GreenPlum 常用命令 gpstate 命令 参数 作用 gpstate -b => 显示简要状态 gpstate -c => 显示主镜像映射 gpstart -d => 指定 ...

  10. Centos7.5虚拟机无法ping通网关、外网IP地址

    问题:前两天Centos7.5虚拟机关机,第二天重启后使用Xshell发现无法连接虚拟机,经检测发现虚拟机无法ping通192.168.1.1.无法ping通192.168.1.118(客户机)和ww ...