第二章 数据描述
DESCRIPTION
第二章 数据描述. 本章知识点: 预备知识 数据类型 常量与变量 不同类型数据间的转换 运算符和表达式. 计算机中数的表示及进制转换 数码、基与权 数码:表示数的符号 基:数码的个数 权:每一位所具有的值 数制. 2.0 预备知识. 各种进制之间的转换. 二进制、八进制、十六进制转换成十进制 方法:按权相加. 各种进制之间的转换 ( 整数 ). 例 把十进制数 459 转换成十六进制数. 1 C B. 459. 16. 余 11. 余 12. 16. 28. 16. 1. 余 1. 0. - PowerPoint PPT PresentationTRANSCRIPT
1
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
本章知识点:
预备知识数据类型常量与变量不同类型数据间的转换运算符和表达式
第二章 数据描述
2
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
计算机中数的表示及进制转换数码、基与权数码:表示数的符号基:数码的个数权:每一位所具有的值
数制
2.0 预备知识
3
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
二进制、八进制、十六进制转换成十进制 方法:按权相加
10012345
2 59212120212121111011 )()(例
10012
8 94868381136 )()(例
100123
16 79781610162161516121 )()(例 AF
各种进制之间的转换
4
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
二进制、八进制、十六进制转换成十进制
十进制转换成二进制、八进制、十六进制
方法:连续除以基,从低到高记录余数,直至商为 0
例 把十进制数 459转换成十六进制数
45916
2816
1160
(459)10=(1CB)16
1 C B
余 11
余 12
余 1
各种进制之间的转换 (整数 )
方法:按权相加
5
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
二进制转换成八进制: 从右向左,每 3位一组(不足 3位左补 0),转换成八进制
八进制转换成二进制: 用 3位二进制数代替每一位八进制数
例 (1101001)2=(001,101,001)2=(151)8
例 (246)8=(010,100,110)2=(10100110)2
000 ~ 0001 ~ 1010 ~ 2011 ~ 3100 ~ 4101 ~ 5110 ~ 6111 ~ 7
二进制与八进制之间的转换
6
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
二进制转换成十六进制: 从右向左,每 4位一组(不足 4位左补0),转换成十六进制
十六进制转换成二进制: 用 4位二进制数代替每一位十六进制数
例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16
例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2
0000 ~ 00001 ~ 10010 ~ 20011 ~ 30100 ~ 40101 ~ 50110 ~ 60111 ~ 71000 ~ 81001 ~ 91010 ~ A1011 ~ B1100 ~ C1101 ~ D1110 ~ E1111 ~ F
二进制与十六进制之间的转换
7
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
内存以字节为单元组成每个字节有一个地址一个字节一般由 8个二进制位组成每个二进位的值是 0或 1
01234567
0123456789
10
……
...
7
6
4
3
2
5
1
字节和位
8
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
原码:最高位为符号位,其余各位为数值本身的绝对值反码:正数:反码与原码相同负数:符号位为 1,其余位对原码取反
补码:正数:原码、反码、补码相同负数:最高位为 1,其余位为原码取反,再对整个数加 1
3
12
6
9
1
2
4
57
8
10
11
9-5=49+7=16=(14)12
——数值的表示方法 原码、反码和补码
9
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
原码 反码 补码+7 00000111 00000111 00000111
-7 10000111 11111000 11111001
+0 00000000 00000000 00000000
-0 10000000 11111111 00000000
数的范围01111111~11111111(-127~+127)
01111111~10000000(-127~+127)
01111111~10000000(-128~+127)
负数补码转换成十进制数:最高位不动,其余位取反加 1
例 补码: 11111001 取反: 10000110 加 1 : 10000111=-7
(用一字节表示数)
10
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
数据类型总表
C数据类型
基本类型
构造类型
指针类型
空类型 void
定义类型 typedef
字符类型 char
枚举类型 enum
整 型
实型单精度型 float
双精度型 double
数组
结构体 struct
共用体 union
短整型 short
长整型 long
整型 int
数据类型决定:1. 数据占内存字节数2. 数据取值范围3. 其上可进行的操作
2.1 数据类型
11
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
类型符号 关键字
数的表示范围所占位数
整型
字符
型
实型
有
无
(signed)int 16 -32768~32767(signed)short 16 -32768~32767
(signed)long 32 -2147483648~214748364716unsigned
int0~65535
32 0~4294967295unsigned long
unsigned short 16 0~65535
有 float 32
3.4e-38~3.4e38有 double 6
41.7e-308~1.7e308
有 char 8 -128~127
无 unsigned char 8 0~255
说明 :数据类型所占字节数随机器硬件不同而不同 ,上表以 IBM PC机为例 :
请看int和unsigned int
基本数据类型
12
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
标识符定义:用来标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字
长度:最长 32个字符命名原则:见名知意
不宜混淆 如 l与 I, o与 0
例 :判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char a>b _above $123
< >
M.D.John 3days#33
char $123a>b
2.2 常量与变量
13
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
一般用大写字母是宏定义预处理命令,不是 C语句
直接常量 : 整型常量 请点击: 实型常量 请点击: 字符常量 请点击: 字符串常量 请点击:
如 #define PRICE 30
定义:程序运行时其值不能改变的量(即常数)分类 :符号常量 :用标识符代表常量
定义格式: #define 符号常量 常量
< >
例 符号常量举例 (ch2_1.c)
#define PRICE 30main(){ int num,total; num=10; total=num*PRICE; printf("total=%d",total);}
运行结果: total=300
常量
14
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
三种形式:十进制整数:由数字 0~9和正负号表示 . 如 123,-
456,0八进制整数:由数字 0开头 ,后跟数字 0~7表示 .如
0123,011十六进制整数:由 0x开头 ,后跟 0~9,a~f,A~F表
示 . 如 0x123,0Xff
例 12 与 12L 例 30000 为 int型 65536 为 long int 型
整型常量的类型根据其值所在范围确定其数据类型在整常量后加字母 l或 L,认为它是 long int 型常量
问题:0123 = ( )10
0x123 = ( )10
0Xff = ( )10
83
291
255
问题:0123 = ( )10
0x123 = ( )10
0Xff = ( )10
整型常量(整常数)
15
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
表示形式: 十进制数形式:(必须有小数点) 如
0.123, .123, 123.0, 0.0, 123.指数形式:( e或 E之前必须有数字;指数必须为整
数)如 12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5
实型常量的类型默认 double型在实型常量后加字母 f或 F,认为它是 float 型
实型常量(实数或浮点数)
aaa 16
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
定义 :用单引号括起来的单个普通字符或转义字符 . 字符常量的值:该字符的 ASCII码值
<
转义字符及其含义:
转义字符 含义
\n
\v
\r
\a
\‘
\ddd
\t
\b
\f
\\
\“
\xhh
转义字符 含义
换行
垂直制表
回车
响铃单引号
3位 8进制数代表的字符
水平制表
退格
换页
反斜线
双引号2位 16进制数代表的字符
‘如 \101’ -----------‘A’ ‘\012’ -----------’\n’ ‘\376’ -----------’’ ‘\x61’ -----------’a’ ‘\60’ -----------’0’ ‘\483’ ----------()
例 :‘A’-------’\101’-------’\x41’--------65
‘如 A’——65 ‘, a’——97, ‘0’——48 , ‘\n’——10
‘如 a’ ‘A’ ‘?’ ‘\n’ ‘\101’
转义字符 :反斜线后面跟一个字符或一个代码值表示
例 转义字符举例 (ch2_001.c,ch2_004.c) main(){ printf("\101 \x42 C\n"); printf("I say:\"How are you?\"\n"); printf("\\C Program\\\n"); printf("Turbo \'C\'");}
运行结果: (屏幕显示 )A B CIsay:”How are you?”\C Program\Turbo ‘C’
例 main() { printf(“Y\b=\n”); }
运行结果:屏幕显示: =打印机输出: ¥
字符常量
17
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
字符常量与字符串常量不同
定义:用双引号 (“”)括起来的字符序列存储:每个字符串尾自动 ‘加一个 \0’ 作为字符串
结束标志
h e l l o \0 “例 字符串 hello”在内存中
a a \0例 ‘ a’ “a”
“”例 空串 \0
例 : char ch; ch=“A”; 例 : char ch; ch=‘A’;
字符串常量
18
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
编译程序根据变量定义为其分配指定字节的内存单元 …
...
地址
int a=1, b=-3,c;
a
b
c
2字节
2字节
2字节
地址
地址
….
..
内存
1
-3
随机数
概念:其值可以改变的量变量名与变量值变量定义的一般格式:
数据类型 变量 1[,变量 2 …, ,变量 n];
变量初始化 : 定义时赋初值例 : int a,b,c; float data;
决定分配字节数和数的表示范围
合法标识符 例 : int a=2,b,c=4; float data=3.67; char ch=‘A’; int x=1,y=1,z=1; int x=y=z=1;
变量的使用:先定义,后使用
例 1 int student; stadent=19; //Undefined symbol ‘stadent’ in function main
例 2 float a,b,c; c=a%b; //Illegal use of floating point in function main
变量定义位置:一般放在函数开头
main(){ int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%f\n”,data);}
变量定义
可执行语句
main(){ int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%f\n”,data);}
变量
19
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
占字节数随机器不同而不同 ,一般占一个机器字short≤int≤long可用 sizeof(类型标识符)测量
实型变量float:占 4字节,提供 7位有效数字double:占 8字节,提供 15~16位有效数字
字符型变量字符变量存放字符 ASCII码char与 int数据间可进行算术运算
例 1: float a; a=111111.111; /* a=111111.1*/例 2: double b; b=111111.111; /* b=111111.111*/
例 a=‘D’; /* a=68; */ x=‘A’+5; /* x=65+5; */ s=‘!’+‘G’ /* s=33+71; */
没有字符串变量,用字符数组存放
整型变量
20
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
/*ch2_003.c*/ #define PRICE 12.5 main() { int num=3; float total; char ch1,ch2=‘D’;
total=num*PRICE; ch1=ch2-‘A’+‘a’; printf(“total=%f,ch1=%c\n”,total,ch1); }
宏定义
变量定义
输出结果
运行结果:total=37.500000, ch1=d
例子
21
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
隐式转换什么情况下发生
运算转换 ------不同类型数据混合运算时 赋值转换 ------把一个值赋给与其类型不同的变量时 输出转换 ------输出时转换成指定的输出格式 函数调用转换 ------实参与形参类型不一致时转换
运算转换规则 :不同类型数据运算时先自动转换成同一类型
2.3不同类型数据间的转换
22
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
double float
long
unsigned
int char,short低
高 说明 :
必定的转换
运算对象类型不同时转换
char ch; int i; float f; double d;
ch/i + f*d - (f+i)int
int
double
double
double
double
double
double
int
int
double
double
double
double
double
double
10+‘a’ +i*f - d/l
例 2 int i; float f; double d; long l;
例 1
23
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
一般形式:(类型名)(表达式) 例 : (int)(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,
原变量类型不变 例 main()
{ float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); }结果: x=3.600000,i=3
较高类型向较低类型转换时可能发生
精度损失问题
显式转换(强制转换)
24
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
C运算符
算术运算符:(+ - * / % ++ --)关系运算符:(< <= == > >= !=)
逻辑运算符:((! && ||) 位运算符 :(<< >> ~ | ^ &)
赋值运算符:(= 及其扩展)条件运算符:( ?:)逗号运算符:( ,)指针运算符:( * &)
求字节数 :( sizeof)强制类型转换:(类型)分量运算符:( . ->)下标运算符:( [])
其它 :( ( ) -)
2.4 运算符和表达式
25
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
运算符功能与运算量关系要求运算量个数要求运算量类型
运算符优先级别结合方向结果的类型
学习运算符应注意
26
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
基本算术运算符: + - * / %结合方向:从左向右
优先级: - ---->* / % -----> + - (2) (3) (4)
说明:“-”可为单目运算符时 ,右结合性两整数相除,结果为整数%要求两侧均为整型数据
例 5/2 = -5/2.0 =
例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2
算术运算符和表达式
2-2.5
1-110
()
27
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
作用:使变量值加 1或减 1种类:
前置 ++i, --i (先执行 i+1或 i-1,再使用 i值) 后置 i++,i-- (先使用 i值 ,再执行 i+1或 i-1)
例 j=3; k=++j; j=3; k=j++; j=3; printf(“%d”,++j); j=3; printf(“%d”,j++); a=3;b=5;c=(++a)*b; a=3;b=5;c=(a++)*b;
//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=4
自增、自减运算符 ++ --
28
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
作用:使变量值加 1或减 1种类:
前置 ++i, --i (先执行 i+1或 i-1,再使用 i值)
后置 i++,i-- (先使用 i值 ,再执行 i+1或 i-1)
说明:++ -- 不能用于常量和表达式 ,如 5++, (a+b)++++ -- 结合方向: 自右向左优先级: - ++ -- ------>* / % ----->+ - (2) (3) (4)
例 -i++ -(i++) i=3; printf(“%d”,-i++); //-3 例 j+++k; (j++)+k; 例 -i++ i=3; printf(“%d”,-i++);
自增、自减运算符 ++ --
29
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
简单赋值运算符 符号: = 格式: 变量标识符 =表达式
作用:将一个数据(常量或表达式)赋给一个变量
复合赋值运算符种类: += -= *= /= %= 《 = 》 = &= ^= |=
含义: exp1 op= exp2 exp1 = exp1 op exp2
a+=3 a=a+3
x*=y+8 x=x*(y+8)
x%=3 x=x%3
例 a=3; d=func(); c=d+2;
赋值运算符和表达式
30
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
结合方向:自右向左优先级 : 14左侧必须是变量,不能是常量或表达式
赋值表达式的值与变量值相等 ,且可嵌套
赋值转换规则 :使赋值号右边表达式值自动转换成其左边变量的类型
例 3=x-2*y; a+b=3;
例 float f; int i; i=10; f=i;则 f=10.0
例 int i; i=2.56; //结果 i=2;
例 : a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)
//表达式值为 5, a,b,c值为 5// b=5;a=5//表达式值 11, c=6,a=11//表达式值 10, a=10,b=4,c=6//表达式值 5, a=5,b=10,c=2
说明( 1):
31
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
结合方向:自右向左 优先级 : 12 左侧必须是变量,不能是常量或表达式
赋值表达式的值与变量值相等 ,且可嵌套
赋值转换规则 :使赋值号右边表达式值自动转换成其左边变量的类型
例 : a=12; a+=a-=a*a
例 : int a=2; a%=4-1; a+=a*=a-=a*=3;
//a=-264 等价于 a=a+(a=a-(a*a))
//a=0 等价于 a=a+(a=a*(a=a-(a=a*3)))
说明( 2) :
32
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
形式:表达式 1,表达式 2,……表达式 n结合性 :从左向右优先级 : 15逗号表达式的值:等于表达式 n的值用途:常用于循环 for语句中
例 a=3*5,a*4 a=3*5,a*4,a+5
例 x=(a=3,6*3) x=a=3,6*a
例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c);
//a=15,表达式值 60//a=15,表达式值 20
//赋值表达式,表达式值 18, x=18//逗号表达式 ,表达式值 18,x=3
//1,2,3//3,2,3
逗号运算符和表达式
例 :/*ch2_6.c*/#include <stdio.h>main(){ int x,y=7; float z=4; x=(y=y+6,y/z); printf("x=%d\n",x);}
运行结果: x=3
33
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
关系运算符种类:< <= == >= > !=结合方向:自左向右优先级别:
<<=>>===!=
优先级 6(高)
优先级 7(低) 例 c>a+b //c>(a+b)
a>b!=c //(a>b)!=c a==b<c //a==(b<c) a=b>c //a=(b>c)
“ ” “ ”关系表达式的值:是逻辑值 真 或 假 ,用 1和0表示
例 int a=3,b=2,c=1,d,f; a>b (a>b)==c b+c<a d=a>b f=a>b>c
//表达式值 1
//表达式值 1//表达式值 0
//d=1
//f=0
关系运算符和表达式
34
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
例 若 a=0; b=0.5; x=0.3; 则 a<=x<=b 的值为 0
例 5>2>7>8在 C中是允许的, 值为 0
例 int i=1, j=7,a; a=i+(j%4!=0); 则 a=2
‘例 a’>0 结果为 ‘A’>100 结果为
1
0
关系运算注意( 1)
35
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
“例 注意区分 =” “与 ==” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);
例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0==1.0 结果为
可改写为: fabs(1.0/3.0*3.0-1.0)<1e-60
关系运算注意( 2)
36
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
a b !a !b a&&b a||b真
假
真
假假假
真
真
逻辑运算符 种类: ! && ||
逻辑运算真值表
C语言中 ,运算量 : 0 “ ”表示 假 , 非 0 “ ”表示 真 , 运算结果 : 0 “ ”表示 假 , 1 “ ”表示 真 ,
真
假
假
假
假
假
真真
假
假真
真
真
假
真
真
逻辑运算符和表达式( 1)
37
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
! (2)
&& (11)
|| (12)
高
低
例 a<=x && x<=b a>b&&x>y a==b||x==y !a||a>b
优先级: 结合方向:
! :从右向左
&& :从左向右
|| :从左向右
// (a<=x) && (x<=b) //(a>b)&&(x>y)
//(a==b)||(x==y)//(!a)||(a>b)
逻辑运算符和表达式( 2)
38
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
! (2)
&& (11)
|| (12)
高
低
优先级: 结合方向:
! :从右向左
&& :从左向右
|| :从左向右
例 a=4;b=5; !a a&&b a||b !a||b 4&&0||2 5>3&&2||8<4-!0 ‘c’&&‘d’
值为 1值为 0
值为 1
值为 1
值为 1
值为 1
//(5>3)&&2||(8<(4-(!0))) 值为 1
逻辑运算符和表达式( 3)
39
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
! (2)
&& (11)
|| (12)
高
低
优先级: 结合方向:! :从右向左
&& :从左向右
|| :从左向右
短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符
< >
例 a&&b&&c //只在 a为真时,才判别 b的值; 只在 a、 b都为真时,才判
别 c的值 例 a||b||c //只在 a为假时,才判别 b的值;
只在 a、 b都为假时,才判 别 c的值 例 a=1;b=2;c=3;d=4;m=1;n=1;
(m=a>b)&&(n=c>d)
//结果 m=0,n=1
逻辑运算符和表达式( 4)
40
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
一般形式: expr1 ? expr2 : expr3执行过程功能:相当于条件语句,但不能取代一般 if语句 例 if (a>b)
printf(“%d”,a); else printf(“%d”,b);
printf(“%d”,a>b?a:b); 例 求 a+|b|
printf(“a+|b|=%d\n”,b>0?a+b:a-b);
expr1
取 expr2值 取 expr3值
非 0 =0
例 (a==b)?’Y’:’N’ (x%2==1)?1:0 (x>=0)?x:-x (c>=‘a’ && c<=‘z’)?c-’a’+’A’:c
条件运算符可嵌套 如 x>0?1:(x<0?-1:0)优先级 : 13结合方向:自右向左 如 a>b?a:c>d?c:d a>b?a:(c>d?c:d)expr1、 expr2、 expr3类型可不同,表达式值取较高的类型
例 x?‘a’:‘b’ //x=0, ‘表达式值为 b’; x‡0, ‘表达式值为 a’ x>y?1:1.5 //x>y ,值为 1.0; x<y ,值为 1.5
条件运算符与表达式
41
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
01 11 11 11 11 11 11 11int型: 最大 :32767
10 00 00 00 00 00 00 00 最小 :-32768
11 11 11 11 11 11 11 11unsigned int型: 最大 :65535
00 00 00 00 00 00 00 00 最小 :0
条件运算符与表达式( 1)
42
你现在所处的位置在:首页 C语言教学幻灯片版 第二章 数据描述
数制
基
权
表示
数码
特点
10º, 10¹, 10² …,
十进制数
0~9
10
逢十进一
二进制数
0~1
2
2º, 2¹, 2² …,
逢二进一
八进制数
0~7
8
8º, 8¹, 8² …,
逢八进一
十六进制数
0~9,A~F,a~f
16
16º, 16¹, 16² …,
逢十六进一
十进制: 4956= 410³+910² +510¹+610º二进制: 1011=12³+02² +12¹+12º十六进制: 81AE=816³+116² +1016¹+1416º八进制: 4275=48³+28² +78¹+58º
条件运算符与表达式( 2)