文档章节

Swift二进制,十进制,十六进制转换

宁音雨雾
 宁音雨雾
发布于 2016/05/28 09:30
字数 326
阅读 922
收藏 2


 

    // MARK:
    // MARK: 字符串转二进制 获取二进制的第几位数(字符串)
    /// 字符串转二进制 获取二进制的第几位数(字符串)
     func xnStringAndBinaryDigit(string: String,number: Int) -> String? {
        
        // 字符串转 int
        let valueForInt = (string as NSString).intValue;
        
        // 后面的参数为转换的进制数 2
        let result = String(valueForInt,radix:2);
        
        // 获取字符串内容长度
        var length = result.characters.count;
        
        // 第七位数是
        var seventiethNumber: String?;
        
        /// 遍历字符串中每个字符 我们需要的是右边数起 第七位数
        for i in result.characters {
            
            if length < number {
                
                break;
            }
            
            if length == number {
                
                seventiethNumber = String(i);
                
                break;
            }
            
            length -= 1;
        }
        
        return seventiethNumber;
    }

 

        /*
         十进制Int 转 二进制String
         后面的参数为转换的进制数 2 10 16
         */
        let string = String(3,radix:2);
        
        // String 转 NSString
        let stringNS = NSString.init(string: string);
        
        // NSString 转 Int(十进制)
        let numberInt = stringNS.integerValue;

        // 十进制Int 转十六进制String
        let stringSixteen = String(30,radix:16)
        
        // 十六进制String 转 十进制Int
        let intNumber = stringSixteenChangeToInt(stringSixteen);
        
        print("\(numberInt),\(intNumber)");

    // MARK:
    // MARK: 十六进制String 转 十进制Int
    /// 十六进制String 转 十进制Int
     func stringSixteenChangeToInt(stringSixteen:String) -> Int {
        
        let str = stringSixteen.uppercaseString
        
        var numbrInt = 0
        
        for i in str.utf8 {
            
            numbrInt = numbrInt * 16 + Int(i) - 48
            
            // 0-9 从48开始
            if i >= 65 {
                
                // A-Z 从65开始,但有初始值10,所以应该是减去55
                numbrInt -= 7
            }
        }
        return numbrInt
    }

学自:http://www.jianshu.com/p/34d5e958910a

© 著作权归作者所有

上一篇: 伸缩动画
下一篇: QQ一键退朝效果
宁音雨雾
粉丝 55
博文 312
码字总数 48631
作品 0
东城
程序员
私信 提问
Java中int的各进制之间的转换

一、二、八、十、十六进制之间的转换 int n1 = 14; //十进制转成十六进制: Integer.toHexString(n1); //十进制转成八进制 Integer.toOctalString(n1); //十进制转成二进制 Integer.toBinary...

pricker
2015/08/23
4.3K
0
二进制、八进制、十进制、十六进制之间转换

一、 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一...

rainckoo
2014/11/26
384
2
二进制,十进制,八进制,十六进制

一、 进制的概念在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。 对于进制,有两个基本的概念:基数和运算规则。基数:基数是指一种进制中组成的基...

西鼠
2017/12/11
0
0
Swift语言指南(五)--数字字面量和数字类型转换

数字字面量 整数字面量写法如下: · 十进制数,无前缀 · 二进制数,以 0b 为前缀 · 八进制数,以 0o 为前缀 · 十六进制数,以 0x 为前缀 下面所有整数字面量值为十进制的 17 : 1 let de...

joe.huang
2014/06/08
0
0
补基础:自学:计算机科学导论 第二章 数字系统

2.2 位置化数字系统 在数字中符号所占据的位置决定了其表示的值。在该系统中,数字这样表示: +-(Sk-1 ……S2S1S0 ……S-l)b 它的值是: n = +-(Sk-1 bk-1 + …… + S1 b 1 + S0 b0 + S-1 b...

soulpei
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot全家桶,集成shiro,rabbitmq,redis, mybatis,druid,swagger

搭建了一个SpringBoot的模板,下载即可作为单体应用的服务后台模板 项目地址:https://gitee.com/devilscode/springboot_template 项目集成框架 springboot 作为基础框架 shiro 权限管理 ra...

devils_os
6分钟前
2
0
云服务器的优势有哪些?

与传统的服务器相比,云服务器有多种显著的优势,因此近年来云服务器租用一直都很受消费者的欢迎。 那么云服务器都有哪些优势呢? 云服务器的稳定性很好 虚拟主机是很多用户建站的首选方案,这...

云漫网络Ruan
6分钟前
2
0
好程序员web前端学习路线分享CSS浮动-清除浮动篇

好程序员web前端学习路线分享CSS浮动-清除浮动篇,为什么要清除浮动   这里所说的清除浮动,并不是不要浮动了,而是清除浮动与浮动之间的影响。那么到底会有什么影响呢? 1.高度塌陷   ...

好程序员官方
17分钟前
1
0
我有酒,你有故事吗?

记录学习的每一秒,巨杉技术社区有奖征文全新启动! 如果, 你热爱数据技术,乐于尝(zhe)试(teng), 又喜欢写点什么~ 那么, 无论你是架构大佬,还是DBA大神, 只要你愿意通过文字分享你...

巨杉数据库
21分钟前
1
0
【Git】ignore文件不生效

简介 使用git的过程中, 某些文件可能不希望上传到服务器,例如日志、本地化配置等信息。这时候,我们可以通过配置.gitignore文件忽略这些文件的提交。 配置.gitignore 常见的配置如下: HELP...

Areya
23分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部