整形常量的类型
一个整型常量可以用3种不同的方式表示:
(1)十进制整数。十进制都是以0-9这九个数字组成,不能以0开头。如l314,-432,0等。在一个整常量后面加一个字母l或L,则认为是long int型常量。例如123L,421L,OL等,这往往用于函数调用中。如果函数的形参为long int,则要求实参也为long int型,此时用123 作实参不行,而要用123L 作实参。
(2)八进制整数。 由0-7数字组成,在常数的开头加一个数字0 就表示这是以八进制数形式表示的常数。如020表示这是八进制数20,它相当于十进制数16。
(3)十六进制整数。由0-9和A-F组成(A代表十进制中的10,以此类推,F代表15)。在常数的开头加一个数字0和一个英文字母X(或x),就表示这是以十六进制数形式表示的常数。如0X20表示这是十六进制数20,它相当于十进制数32。
类型转换
- 十进制整数转换为非十进制整数
方法:除基取余法( 除基取余,先余为低(位),后余为高(位))
例:55L转为 110111(二进制)
除基取余即用被转换的数除以要转为的进制数,这里是转为二进制,所以用55去除以2,记录每次除完后得到的余数。
55%2为1,实则商为27余数为1,继续用27除以2,记录余数,直至最后的商为0结束。
55%2=1 27%2=1 13%2=1 6%2=0 3%2=1 1%2=1(商为0,结束)
“ 先余为低(位),后余为高(位)”即先得到的余数排在后位,也就是把得到的余数倒着来排,最后得到 110111。
- 十进制小数转换为非十进制小数
方法: 乘基取整法 ( 乘基取整,先整为高(位),后整为低(位))
例:0.625L
乘基取整即用被转换的数乘以要转为的进制数,这里转为二进制,所以用0.625乘以2,记录每次乘基得到的整数部位,然后用得到的小数部位继续乘基,直到小数部位为0结束。
0.625乘以2得到1.25,记录整数部位1,以此类推,直到小数部位为0结束。
0.625 * 2 = 1.25 0.25 * 2 = 0.5 0.5 * 2 = 1.0
所以最终结果为 101,注意“ 先整为高,后整为低 ”这里与整数部位相反,先得到的为高位,排在前面。
- 非十进制整数转换为十进制整数
规律:相应位置上的数,乘以进制的n-1次幂之后,累加即可。
例:二进制整数 101转为十进制
1 * 2² + 0 * 2¹ + 1 * 2º=5 所以二进制101转换为十进制为5。
- 二进制整数转换为八进制整数
以小数点为界,将整数部分自右向左和小数部位自左向右分别按每三位为一组(不足三位用0补足),然后将各个三位二进制数转换为对应的八进制数。
例:二进制数:10111001010.1011011
首先按原则划分为 010 111 001 010.101 101 100
然后对位转换 2 7 1 2 . 5 5 4
- 二进制整数转换为十六进制整数
以小数点为界,将整数部分自右向左和小数部位自左向右分别按每四位为一组(不足四位用0补足),然后将各个四位二进制数转换为对应的十六进制数。
例:二进制数: 10111001010.1011011
首先按原则划分为 0101 1100 1010 . 1011 0110
然后对位转换 5 C A . B 6
- 八进制整数转换为二进制整数
每一位八进制数转换为对应的三位二进制数,不足的可以补0。
例:0357(八进制数357)
3转为011 5转为101 7转为111 即011101111
- 十六进制整数转换为二进制整数
与八进制一样,每一位十六进制整数转换为对应的四位二进制数,不足的可以补0。
例:A6F
A 转为1010 6 转为0110 F 转为1111 即101001101111
- 八进制与十六进制的相互转换
这两者之间的转换可以借助十进制或者二进制完成,可以先将八进制转换成十进制或二进制,再转换成十六进制。通过间接转换来实现。
浮点数的表示方式
一个浮点数可以用两种不同的方式表示:
(1)十进制小数形式。如 21.456,-7.98 等。它一般由整数部分和小数部分组成,可以省略其中之一 ( 如 78.或 .06, .0),但不能二者皆省略。C++编译系统把用这种形式表示的浮点数一律按双精度常量处理,在内存中占8个字节。如果在实数的数字之后加字母F或f,表示此数为单精度浮点数,如1234F,-43f,占4个字节。如果加字母 L 或1,表示此数为长双精度数 ( long double ),在GCC中占12个字节,在Visual C++中占8个字节。
(2)指数形式(即浮点形式)。一个浮点数中可以写成指数形式如3.14159。在程序中表示为 0.314159e1,3.14159e0,31.4159e-1,314.159e-2,用字母e表示其后的数是以10为底的幂,如e12表示10的12次幂。