您的位置:首页 > 编程语言 > C语言/C++

C语言基础知识(二)

2020-07-28 20:52 281 查看

一、整数存储方式(补码)

正整数存储方式:正数的补码即是正数的二进制。

负整数存储方式:负数补码 = 该数的绝对值的二进制,并对除最高位的取反,再加1;

二、无符号数据输出

对无符号整型数据输出用“%u”,表示用无符号十进制数的格式输出。

例子:

[code]printf("%u\n", u_num);

三、浮点数存放方式

float 和 double 类型,视系统定,多少位用于小数部分,多少位用于指数部分。

float型:精度为6位有效数字,一般为4个字节。

double型:精度为15位有效数字,一般为8个字节。

浮点型常量默认是双精度,分配8字节。

四、强制类型转换

[code]float  x = 3.8;
int a = (int)x; #强制类型转换

原理:进行强制类型转换的时候,int(x)会先得到一个int类型的临时值,等于x的整数部分。赋值给int类型的a后,x的类型和值都未发生改变,并临时值不再存在。

1、将一个占字节多的整型数赋值给一个占字节少的整型数,只将多字节的低字节赋值即可。

五、变量赋值

对几个变量要赋同一值,应该写

[code]int a = 3, b = 3, c = 3; # 对
int a = b = c = 3;  #是错误的

一般变量初始化不是在编译阶段完成的(只有静态存储变量和外部变量的初始化是编译阶段完成的),而是在程序运行的时候执行本函数时赋予初值的。

[code]int a = 3;
## 相当于
int a;
a = 3;

六、输出格式e

用 %e 指定以指数形式输出实数,Visual C++系统会默认给数字部分的小数位分6列,指数部分占5列(如e+002,其中e 占一列,指数符号占1列,指数占3列)。指数标准化形式的输出,即是小数点前必须有且仅有1位非零数字。

例子:

[code]printf("%e", 123.456);
输出:1.234560e+002
其中:234560占6列,e+002占5列,实际输出长度为13列
#---------------------------------------
printf("%13.2e", 123.456);
输出:    1.23e+002  (前面有4个空格)
其中:13.2表示总长13,小数部分为2,e+002默认占5列

七、使用scanf的注意事项

如果在scanf中除了格式声明外还有其他字符(包括空格),则在输入数据的时候,要和scanf中的字符相对应。

[code]scanf("%f%f", &a,&b);
连续输入数字时,为了区别数字值,可以用空格进行隔离
输入:2.3 5.4

但是scanf中有其他字符的时候
scanf("a = %f, b = %f", &a, &b);
因此输入的时候要一一对应即
输入:a = 2.3, b = 5.4    (要对应,包括空格)

scanf("%c%c", &a,&b);
连续输入字符的时候,不能用空格进行隔离
输入:ab                  (不能有空格)

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: