加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 06:57:14 所属栏目:百科 来源:网络整理
导读:// MARK: // MARK: 字符串转二进制 获取二进制的第几位数(字符串) /// 字符串转二进制 获取二进制的第几位数(字符串) func xnStringAndBinaryDigit(string: String,number: Int) - String? { // 字符串转 int let valueForInt = (string as NSString).intVal


// 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读