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

整数文字可以写成:

  • 一个十进制数,无前缀,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 //如果想逼格高点,可以稍微扩展一下String
 2 extension String{
 3    func HexToDecimal() -> Int {
 4        var sum:Int = 0
 5        if let str:String = self.uppercased()
 6        {
 7            for i in str.utf8 {
 8                //0-9:从48开始
 9                sum = sum * 16 + Int(i) - 48
10                //A-Z:从65开始
11                if i >= 65 {
12                    sum -= 7
13                }
14            }
15        }
16        return sum
17    }
18 }
19
20 //测试
21 print("ff".HexToDecimal())
22 //Print 255

原文地址:https://www.cnblogs.com/strengthen/p/10348029.html

时间: 2024-08-28 16:13:54

[Swift]二进制、十进制、十六进制之间的转换的相关文章

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

int a = 10; Console.WriteLine(a.ToString("X")); //10进制转16进制 Console.WriteLine(Convert.ToString(a, 16)); //10进制转16进制 Console.WriteLine(Convert.ToString(a, 2)); //10进制转2进制 string b = "1010"; Console.WriteLine(Convert.ToInt32(b, 2)); //2进

二进制 八进制 十进制 十六进制之间的转换

一. 十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步:将168除以2,商84,余数为0.  第二步:将商84除以2,商42余数为0. 

十进制、二进制、八进制、十六进制之间的转换[基础]

今天翻了一本计算机基础的书籍,其中十进制.二进制.八进制.十六进制之间的转换挺有意思的,也容易犯糊涂,特温故而知新. 十进制数制系统 十进制数制系统包括 10 个数字:0.1.2.3.4.5.6.7.8.9 基为:10        逢十进一,如3+7=10,20+80=100 二进制数制系统 计算机中使用二进制表示数据 二进制包括两个符号:0和1 二进制逢二进一:(1+1)2=(10)2 二进制的基为2 示例:1000101100101101 八进制数制系统 用于缩短二进制的数字长度 八进制基

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

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

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

css里,允许使用转义字符\+ascii16进制形式; 例如: e的ascii 16进制是65,我们就写为\65 expression -> expr\65ssion 二进制 十进制 十六进制 缩写 解释 0000 0000  0 00 NUL 空字符(Null) 0000 0001 1 01 SOH 标题开始 0000 0010 2 02 STX 正文开始 0000 0011 3 03 ETX 正文结束 0000 0100 4 04 EOT 传输结束 0000 0101 5 05 ENQ 请求

二进制、八进制、十进制、十六进制之间的转换

  最近复习软考各种进制之间的转换着实让人头疼,今天把常用的几种进制之间的转换问题简单做个总结,希望能够对大家有所帮助.   二进制八进制之间的转换   二进制与八进制之间的关系式每个八进制位对应三个二进制位,详情如下:   八进制:  0    1     2    3     4    5     6    7       二进制:000 001 010 011 100 101 110 111   实例:   27.651(8)  010111.110101001(2)   1001.000

二进制,八进制,十进制,十六进制之间的转换

二进制八进制之间的转换   二进制与八进制之间的关系式每个八进制位对应三个二进制位,详情如下:   八进制:  0    1     2    3     4    5     6    7       二进制:000 001 010 011 100 101 110 111   实例:   27.651(8)  010111.110101001(2)   1001.000101(2)  11.05(8) 二进制与十进制的转换  二进制转换为十进制就是将二进制第i位的值乘以2的i-1次方.    

大话二进制,八进制,十进制,十六进制之间的转换

1.前言 每次放假最无聊的事情,就是不想起床,不想吃饭,方正就是不想动,躺在床上,看着手机,无聊的刷着QQ空间,虽然现在已经很少人玩QQ空间,可是这种习惯一直保持到现在,都没有改变过,电脑上的QQ突然闪动着,我知道是丁大叔发来的QQ消息,叫我一起去吃重庆老麻抄手,丁大叔之所以叫大叔,是因为一起上学的时候,被我们班上的女生调戏了一下,所以我时常拿这个调侃他,不过他也从来都不在乎. 我是湖北人,丁大叔是四川人,我俩的口味都一样,吃东西都要多少带点辣的,在这个变态的广州,他们都不吃辣椒的,要么就是超级

(转 枫伶忆)二进制 八进制 十进制 十六进制之间转换

什么是二进制? 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现.当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的.计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0. 信息的存储单位 位(Bit) :度量数据的最小单位 字节(Byte):最常用的基本单位,一个字节有8位 b7  b6 b5 b4 b3 b2 b1