2.1 数
数是最简单的数据形式,也是计算机能够直接表示的。同时,计算机只识别和处理数字信息。Objective-C支持的数有十进制数、八进制数、二进制数及十六进制数。本节主要介绍十进制数、八进制数、二进制数及十六进制数的使用。
2.1.1 二进制数
二进制数据是用0和1两个数码来表示的数,它的基数为2,其中每一个数都用括号括起来,基数表示可用进制中数码的个数。二进制数的表示形式如图2.1所示。
图2.1 二进制数的表示形式
二进制数的写法如下:
(0000)2 (0001)2
二进制数进行运算时的规则如表2-1所示。
表2-1 二进制数的运算规则
2.1.2 十进制数
十进制数由0~9组成,它的基数为10。十进制数的表示形式如图2.2所示。
图2.2 十进制数的形式
十进制数在进行运算时的规则如表2-2所示。
表2-2 十进制数的运算规则
十进制和二进制之间是可以相互转换的。十进制数转化为二进制数可以使用辗除法。辗除法也就是“除模取余”法。除模取余就是将一个几进制的数转化成另一个进制时,另一个进制就是模,用将要转化的进制数除以模,取它的余数。
下面以十进制的“19”转换为二进制数为例,如图2.3所示,十进制数“19”转换成二进制数的形式为“10011”。
图2.3 十进制数转换为二进制数
2.1.3 八进制数
八进制数由0~7组成,它的基数为8,表示形式如图2.4所示。
图2.4 八进制数的形式
八进制数写法如下:
(002)8 (007)8
八进制数进行运算时的规则,如表2-3所示。
表2-3 八进制数的运算规则
二进制向八进制的转换是每三位二进制数转换为一位八进制数,运算的顺序是从低位向高位依次进行,不足三位的用零补充。以二进制(1111)2转换为八进制为例,如图2.5所示。
图2.5 二进制数转换为八进制数
八进制向二进制转换的思路是八进制的一位转换为二进制的三位,运算的顺序是从低位向高位依次进行。同样以八进制(17)8转换为二进制为例,如图2.6所示。
图2.6 八进制数转换为二进制数
2.1.4 十六进制数
十六进制数开头一定要以数字0和字母x开头(即0x),由0~9及A、B、C、D、E、F共16个数字符组成,形式如图2.7所示。
图2.7 十六进制数的形式
十六进制数的写法如下:
0x15 0x0
十六进制数进行运算时的规则如表2-4所示。
表2-4 十六进制数的运算规则
二进制数向十六进制数转换时,四位转换成十六进制数的一位,运算的顺序从低位向高位依次进行,不足四位用零补。以(1110011)2转换成十六进制数为例,具体转换如图2.8所示。
图2.8 二进制数向十六进制数转换
注意:从低位向高位进行,最后不够四位,则在缺少的高位补0。
十六进制数向二进制数转换,就是把十六进制数的一位转换成二进制数的四位,注意运算的顺序是从低位向高位依次进行的。同样以十六进制数(73)16转换为二进制为例,具体转换如图2.9所示。
图2.9 十六进制数向二进制数转换
2.1.5 各进制之间的转换
二进制数、十进制数、八进制数、十六进制数之间都可以相互转换,如表2-5所示。
表2-5 二进制数、十进制数、八进制数、十六进制数之间的转换