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的运算结果成立,其计算结果为真。
网友评论