![突破,Objective-C开发速学手册](https://wfqqreader-1252317822.image.myqcloud.com/cover/664/656664/b_656664.jpg)
2.1 数
数是最简单的数据形式,也是计算机能够直接表示的。同时,计算机只识别和处理数字信息。Objective-C支持的数有十进制数、八进制数、二进制数及十六进制数。本节主要介绍十进制数、八进制数、二进制数及十六进制数的使用。
2.1.1 二进制数
二进制数据是用0和1两个数码来表示的数,它的基数为2,其中每一个数都用括号括起来,基数表示可用进制中数码的个数。二进制数的表示形式如图2.1所示。
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0045_0001.jpg?sign=1738859464-dFktW5Uyr6tSh97wkxkB4AlqnVN5HWXN-0-6cf233588a8d807f70424111c0715a33)
图2.1 二进制数的表示形式
二进制数的写法如下:
(0000)2 (0001)2
二进制数进行运算时的规则如表2-1所示。
表2-1 二进制数的运算规则
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0046_0001.jpg?sign=1738859464-EBb828cbdX8ALcZS6lxfvlkgsTN6mI6s-0-d567ff1c3b2c3a117139a22cb25cb06d)
2.1.2 十进制数
十进制数由0~9组成,它的基数为10。十进制数的表示形式如图2.2所示。
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0046_0002.jpg?sign=1738859464-7meenkpijXgMrE9E3X7geWgGfhaRqa98-0-c777f09a6eecff29459ca8317bb96c0c)
图2.2 十进制数的形式
十进制数在进行运算时的规则如表2-2所示。
表2-2 十进制数的运算规则
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0046_0003.jpg?sign=1738859464-KI5i56C7Z5676hcqWo5GuaOiQczf8NCr-0-c7bd65f219c2f58cfb6f48db08751163)
十进制和二进制之间是可以相互转换的。十进制数转化为二进制数可以使用辗除法。辗除法也就是“除模取余”法。除模取余就是将一个几进制的数转化成另一个进制时,另一个进制就是模,用将要转化的进制数除以模,取它的余数。
下面以十进制的“19”转换为二进制数为例,如图2.3所示,十进制数“19”转换成二进制数的形式为“10011”。
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0046_0004.jpg?sign=1738859464-pAIVBWyzgcuSUccEY3FSkbLyGqB6vNeO-0-97fa44981b198225d2b8056612e5bff0)
图2.3 十进制数转换为二进制数
2.1.3 八进制数
八进制数由0~7组成,它的基数为8,表示形式如图2.4所示。
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0047_0001.jpg?sign=1738859464-mbYyxloC0EjSsPnIiRQSQmnBRglz0gX2-0-d75c4bb6f94fedbe7017237c29ffbd25)
图2.4 八进制数的形式
八进制数写法如下:
(002)8 (007)8
八进制数进行运算时的规则,如表2-3所示。
表2-3 八进制数的运算规则
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0047_0002.jpg?sign=1738859464-J0fvyHsiL4Gmm42F8viGw7M9MCJKeVgk-0-7e7fea243c181479d03ba00b369e753d)
二进制向八进制的转换是每三位二进制数转换为一位八进制数,运算的顺序是从低位向高位依次进行,不足三位的用零补充。以二进制(1111)2转换为八进制为例,如图2.5所示。
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0047_0003.jpg?sign=1738859464-S3vBqZ2NdiHsbWcCj5d8sevJUT8WWhFk-0-09bdb4ff24c02c01d2aad057f6039795)
图2.5 二进制数转换为八进制数
八进制向二进制转换的思路是八进制的一位转换为二进制的三位,运算的顺序是从低位向高位依次进行。同样以八进制(17)8转换为二进制为例,如图2.6所示。
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0047_0004.jpg?sign=1738859464-nnDwkMGUoSxMz849vVNlrO7hQGJ2UptJ-0-72c67d89ce05a53f1ebac24a3aed8792)
图2.6 八进制数转换为二进制数
2.1.4 十六进制数
十六进制数开头一定要以数字0和字母x开头(即0x),由0~9及A、B、C、D、E、F共16个数字符组成,形式如图2.7所示。
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0048_0001.jpg?sign=1738859464-Kz3eakjr1DWCKcxUq4dF7rqnIZbiichQ-0-e15b5d79de0332c7cfdd1e1b9dd618c0)
图2.7 十六进制数的形式
十六进制数的写法如下:
0x15 0x0
十六进制数进行运算时的规则如表2-4所示。
表2-4 十六进制数的运算规则
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0048_0002.jpg?sign=1738859464-78SR8y68avSnDLvrbcZ4hIpML22jEQgq-0-a9dce1230ecef1f6f6d520733425cd8a)
二进制数向十六进制数转换时,四位转换成十六进制数的一位,运算的顺序从低位向高位依次进行,不足四位用零补。以(1110011)2转换成十六进制数为例,具体转换如图2.8所示。
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0048_0003.jpg?sign=1738859464-C6UcD1YiLlfXTsoDbdwPKuIi9IqtI4pH-0-92790dfcdfd81e16fcda7ce5d17103f0)
图2.8 二进制数向十六进制数转换
注意:从低位向高位进行,最后不够四位,则在缺少的高位补0。
十六进制数向二进制数转换,就是把十六进制数的一位转换成二进制数的四位,注意运算的顺序是从低位向高位依次进行的。同样以十六进制数(73)16转换为二进制为例,具体转换如图2.9所示。
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0049_0001.jpg?sign=1738859464-NLCg7o874ep32KsLlYWzGBIYUrMj4LRS-0-4643db3a2f4ed32795e044cc9aed8751)
图2.9 十六进制数向二进制数转换
2.1.5 各进制之间的转换
二进制数、十进制数、八进制数、十六进制数之间都可以相互转换,如表2-5所示。
表2-5 二进制数、十进制数、八进制数、十六进制数之间的转换
![](https://epubservercos.yuewen.com/5E1B3F/3590317804110901/epubprivate/OEBPS/Images/figure_0049_0002.jpg?sign=1738859464-4nReRS4AHbltBZLd0EcOVRgGuKq4ZtI1-0-93b293f7e3765178098683ab64476364)