C Primer Plus学习 五十二 八进制和十六进制

八进制
        八进制(octal)指以8为基数的数制系统。在该系统中,一个数中的不同位表示8的幕。您可以使用 数字0到7。例如,八进制数451 (在C中写为0451)代表:
4 X 82 + 5 x 81 + J X 8° = 297 (以 1 0 为基数)

       了解八进制的•个简便的方法是每个八进制位对应F3个:进制位。表15.1说明了这种对应关系。这 种对应关系使两种系统间的转换变得容易。例如,八进制数0377在二进制中是11111111。其中我们使用 011代替3,并舍去第一位的0;用111代替每个7。八进制惟一不方便的方面就是一个3位的八进制数需 要用9位:进制数来表示,因此一个比0377大的八进制数需要多个字节来表示。请注意不能舍去内部的0: 0173是01 111 011,而不是01 111 11。


十六进制

       十六进制(hexadecimal,或hex)指以16为基数的数制系统。该系统使用16的幂,使用的数字足0 到丨5。怛是,因为没有单独的阿拉伯数字表示10到15,所以使用字母A到F来达到这个目的。例如,I- 六进制数A3F (在C中写为0xA3F)代表:

10X162 + 3X161 + 15X16° = 2623 (以 10 为基数)

       原是A代表10, F代表15。在C中,可以使用大写或小写字母表示附加的十六进制数字。因此,也 可以将2623写为0xa3f。
       每个十六进制位对应于一个4位的进制数,因此两个十六进制位恰好对应于一个8位字节。第…个 十六进制位表示高4位,第二个十六进制位表示低4位。这使十六进制适f表示字节值。表15.2显示了这 个对应关系。例如,十进制值0xC2可转换为11000010。相反,二进制值11010101可以被看作1101 0101, 从而可转换为0xD5。


       现在您己经了解位和字节,那么让我们研究C对其进行的操作。C有两个工具帮助您对位进行操作。 第一个工具是一套(6个)作用于位的位运算符。第二个工具是字段(field)数据形式,它使您可以访问一个int中的位。以下讨论将简述C的这些特性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值