iOS进制之间转换

1 进制的转换(一)

1.1 问题

完成以下数字的进制转换:

35转换成二进制;

101101 转换成十进制;

1.2 方案

进制就是一种计数的方式,数值的表示形式。在编程中,同一个整数至少有4种表示方式:十进制、二进制、八进制、十六进制。

十进制:逢十进一,默认情况下数值都是十进制;

二进制:逢二进一,数值以0b开头;

八进制:逢八进一,数值以0开头;

十六进制:逢十六进一,数值以0x开头;

在程序中的数据的四种表现形式如图-1所示:

image

图-1

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:将35转换成二进制

用35除以2取余,直到商小于2以后,从商逆序向上组合所有的余数,因此得到35的二进制形式100011,如图-2所示:

image

图-2

可以在代码中验证此结果,如图-3、图-4所示:

image

图-3

image

图-4

步骤二:将101101转换成十进制

用101101每个位置上的数乘以2的当前位次幂,然后所有结果相加的和就是该数的十进制表现形式,因此得到101101的十进制是77,如图-5所示:

image

图-5

可以在代码中验证此结果,如图-6、图-7所示:

image

图-6

image

图-7

2 进制的转换(二)

2.1 问题

完成以下数字的进制转换:

35转换成八进制;

0217转换成十进制;

2.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:将35转换成八进制

35除以8取余,直到商小于8以后,从商逆序向上组合所有余数,因此得到35的八进制形式是43,如图-8所示:

image

图-8

可以在代码中验证此结果,如图-9、图-10所示:

image

图-9

image

图-10

步骤二:将0217转换成十进制

0217每个位置上的数乘以8的当前位次幂,然后所有结果相加的和,因此得到0217的十进制形式是143,如图-11所示:

image

图-11

可以在代码中验证此结果,如图-12、图-13所示:

image

图-12

image

图-13

3 进制的转换(三)

3.1 问题

完成以下数字的进制转换:

0x3125AF转换成二进制;

0b110111100110转换成十六进制;

3.2 方案

因为四位二进制能够表达的最大数是15即F。所以十六进制转二进制,只要把每个位用四位二进制表示后,再进行组合即可。

二进制转十六进制,则需要从右侧开始,每四位一划分,四位用一个十六进制的符号表示后,再组合即可。

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:将0x3125AF转换成二进制

将0x3125AF的每一位用四位二进制数表示,再组合在一起即可,得到二进制形式001100010010010110101111,高位的零可以省略不写,即1100010010010110101111,如图-14所示:

image

图-14

可以在代码中验证此结果,如图-15、图-16所示:

image

图-15

image

图-16

步骤二:将0b110111100110转换成十六进制

将0b110111100110二进制转十六进制,则需要从右侧开始,每四位一划分,用一个十六进制的符号表示再组合,即DE6,如图-17所示:

image

图-17

可以在代码中验证此结果,如图-18、图-19所示:

image

图-18

image

图-19

4 使用不同进制显示数据

4.1 问题

按如下要求完成练习:

声明一个整型变量,初始化时使用十进制数据,赋值为10,使用八进制和十六进制输出初始化后的数据;

为该变量赋值010,使用十进制和十六进制输出改变后的数据;

为该变量赋值0x10,使用十进制输出改变后的数据。

4.2 方案

以八进制的形式给某个变量进行赋值,赋值时数据以0开头。

NSLog格式符%o,控制台显示的八进制不带前导0。NSLog格式符%#o,控制台显示的八进制带前导0。

以十六进制的形式给某个变量进行赋值,赋值时数据以0x开头。

NSLog格式符%x,控制台显示的十六进制不带前导0x。NSLog格式符%#x,显示的十六进制带前导0x。

4.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:使用八进制和十六进制输出数据

在viewDidLoad方法中定义int类型的变量i,以十进制的形式赋值为10,使用%o、%#o和%x、%#x分别以八进制和十六进制的形式输出该变量,如图-20所示:

image

图-20

以八进制和十六进制的形式输出结果分别为12和a,如图-21所示:

image

图-21

步骤二:使用十进制和十六进制输出改变后的数据

将变量i赋值为010,使用十进制和十六进制输出改变后的数据,如图-22所示:

image

图-22

以十进制和十六进制的形式输出结果都是8,如图-23所示:

image

图-23

步骤三:使用十进制输出改变后的数据

将变量i赋值为0x10,使用十进制输出改变后的数据,如图-24所示:

image

图-24

以十进制的形式输出结果是16,如图-25所示:

image

图-25
5 判断如下关系表达式的结果
5.1 问题

判断以下关系表达式的运算结果:
1) 7 > 5
2) 2 > 2
3) 15 > 7 + 2
4) 1 == 2
5) 3 != 2
5.2 方案

关系运算也可以叫做比较运算,用于确定条件是否成立,得出一个是或者否的结论,所以关系运算符的运算结果只有两种,成立则代表真,不成立则代表假。
关系运算经常与条件语句结合使用,关系语句包括以下几种:
“>”大于;
“<”小于;
“==”等于;
“!=”不等于;
“>=”大于等于;
“<=”小于等于;
5.3 步骤

实现此案例需要按照如下步骤进行。
步骤一:依次计算每条语句的运算结果

7 > 5;
7比5大,因此7>5运算结果成立,其计算结果为真,也就是1。
2 > 2;
2和2相等,因此2>2的运算结果不成立,其计算结果为假,也就是0。
15 > 7 + 2;
关系运算的优先级比算术运算低,因此先计算7+2,再计算15>9,其计算结果为真。
1 == 2;
1和2不相等,因此1==2的运算结果不成立,其计算结果为假,也就是0。
3 != 2;
3和2不相等,因此3!=2的运算结果成立,其计算结果为真。

你可能感兴趣的:(iOS进制之间转换)