美文网首页
iOS进制之间转换

iOS进制之间转换

作者: 我不白先生 | 来源:发表于2021-03-05 08:30 被阅读0次

    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进制之间转换

          本文链接:https://www.haomeiwen.com/subject/rvtrqltx.html