zoukankan      html  css  js  c++  java
  • [Swift]二进制、八进制、十进制、十六进制之间的转换

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/ 
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/10348029.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    整数文字可以写成:

    • 一个十进制数,无前缀,Decimal,简写为D
    • 一个二进制数,有0b前缀,Binary,简写为B
    • 一个八进制数,有0o前缀,Octal,简写为O
    • 一个十六进制数,有0x前缀,Hexadecimal,简写为H

    1、二进制和十进制之间的转换

         十进制转二进制

    1 var str = String(31,radix:2)
    2 print(str)
    3 //Print 11111 
     二进制转十进制 
     1 extension String{
     2    func BinaryToDecimal() -> Int {    
     3        var sum:Int = 0
     4        for c in self.characters {
     5            if let number = Int(String(c))
     6            {
     7                sum = sum * 2 + number
     8            }        
     9        }
    10        return sum   
    11    }
    12 }
    13 
    14 //测试
    15 print("11111".BinaryToDecimal())
    16 //Print 31

    2、八进制和十进制之间的转换

      十进制转八进制

    1 var str = String(127,radix:8)
    2 print(str)
    3 //Print 177

         八进制转十进制 

     1 extension String{
     2    func OctalToDecimal() -> Int {    
     3        var sum:Int = 0
     4        for c in self.characters {
     5            if let number = Int(String(c))
     6            {
     7                sum = sum * 8 + number
     8            }        
     9        }
    10        return sum   
    11    }
    12 }
    13 
    14 //测试
    15 print("177".OctalToDecimal())
    16 //Print 127

    3、十六进制和十进制之间的转换

       十进制转十六进制

    1 var str = String(255,radix:16)
    2 print(str)
    3 //Print ff

        十六进制转十进制 

     1 extension String{
     2    func HexToDecimal() -> Int {    
     3        var sum:Int = 0
     4        if let str:String = self.uppercased()
     5        {
     6            for i in str.utf8 {
     7                //0-9:从48开始
     8                sum = sum * 16 + Int(i) - 48 
     9                //A-Z:从65开始
    10                if i >= 65 {              
    11                    sum -= 7
    12                }
    13            }
    14        }
    15        return sum   
    16    }
    17 }
    18 
    19 //测试
    20 print("ff".HexToDecimal())
    21 //Print 255
  • 相关阅读:
    22.抽象类
    21.多态
    20.修饰符
    19.继承
    day46---MySQL数据库进阶(一)
    day45---mysql数据库基本操作初阶(二)
    day45---计算机安全项目(癞蛤蟆)
    day44---数据库初阶(一)
    day44---windows下安装MySQL-5.6.37
    day42---几种network IO模型
  • 原文地址:https://www.cnblogs.com/strengthen/p/10348029.html
Copyright © 2011-2022 走看看