首页 理论教育 数值进制:八进制、十进制和十六进制的标识与使用方法

数值进制:八进制、十进制和十六进制的标识与使用方法

时间:2023-10-25 理论教育 版权反馈
【摘要】:常见的数值进制包括八进制、十进制和十六进制。这3种进制分别用3种标识:oct、dec和hex。例如,以0x或0X起始的为十六进制数,以O起始的为八进制数,其余被视为十进制数。标识showbase会以C/C++惯例处理数值进制。标识showbase一旦被设置,在输出数值时,会自动显示出相应的数字进制。表7-2 整数进制使用上述数值标识一般有两种方法:使用setf()函数直接设置需要指定的标识;使用unsetf()函数直接设置需要指定的标识。

数值进制:八进制、十进制和十六进制的标识与使用方法

常见的数值进制包括八进制十进制十六进制。这3种进制分别用3种标识:oct、dec和hex。标识oct代表是以八进制形式进行读写;标识dec代表是以十进制形式进行读写;标识hex代表是以十六进制形式进行读写。若使用参数none,则代表以十进制形式输出,在读入时要根据起始字符的实际情况而定。

一旦进制被改变,除非重新设置相关标识,否则会持续应用于后继的整数处理过程。默认情况下使用十进制。如果没有使用进制标识或使用了多个进制标识,输出时会采用十进制。输入流和输出流(IOStream)不支持二进制,使用二进制进行读写时,可使用类bitset,实现以二进制形式读写整数值。

在输入时,进制标识有时也会产生影响。上述的进制标识被设置后,读取的数字会按该进制处理。如果没有设置进制标识,起始字符将决定进制。例如,以0x或0X起始的为十六进制数,以O起始的为八进制数,其余被视为十进制数。

标识showbase会以C/C++惯例处理数值进制。标识showbase一旦被设置,在输出数值时,会自动显示出相应的数字进制。八进制会自动以O开头,十六进制会以0x或0X开头。整数进制的操作标识符及其意义见表7-2。

7-2 整数进制

978-7-111-51399-5-Chapter07-64.jpg

使用上述数值标识一般有两种方法:使用setf()函数直接设置需要指定的标识;使用unsetf()函数直接设置需要指定的标识。在设置标识时,同时自动清理同组的其他标识。setf()函数和unsetf()函数的原型为:

978-7-111-51399-5-Chapter07-65.jpg(www.xing528.com)

978-7-111-51399-5-Chapter07-66.jpg

其中setf()函数的第二种形式的第一个参数_Mask是需要打开的标识符,第二个参数_Unset是需要关闭的标识符。该形式的返回值是原有的标识符。例如,

978-7-111-51399-5-Chapter07-67.jpg

上述代码的输出结果为:

978-7-111-51399-5-Chapter07-68.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈