您的位置:首页 > 其它

c笔记02---数据类型

2015-09-30 16:24 260 查看
1. 整型 int

signed short int 有符号短整型,简写:short/int,字长 2 字节(16 位),范围:-32768~32767(也有的计算机里面,int 是 4 位)

signed long int 有符号长整型,简写:long,字长 4 字节 ;

unsigned short int 无符号短整型,简写 unsigned int,2 字节,范围:0~65535;

unsigned long int 无符号长整型,简写 unsigned long,4 字节。

size_t 无符号整型,在不同编译器上都是 4 字节,代替 unsigned int

2. 浮点型 float

float 单精度浮点数,字长 4 字节

double 双精度,8 字节

3. 字符型 char

字长 1 字节

字符串声明:char ss[20];

4. 隐式类型转换会把占地小的数据转换成占地大的数据,如果数据大小一样会把有符号的数据转换成无符号的数据。

5. C 语言中支持如下逻辑操作符(==, !=, >, >=, <, <=, &&, || )

&& 都为真才为真;

|| 有一个为真即为真;

&& 和 || 具有短路特性

! 也是一个逻辑操作符,可以对一个逻辑表达式的结果求反。

数学操作符优先级高于逻辑操作符

& 表示按位与,可以对两个二进制补码进行计算得到一个新的二进制补码。它可以把某个补码中特定的位置清 0。

| 表示按位或,可以对两个二进制补码进行计算得到一个新的二进制补码。它可以把某个补码中特定的位置设置成 1。

^ 表示按位亦或。它可以把某个已知的补码中特定位置变成相反数字。

~ 表示按位求反,可以对一个二进制补码进行计算得到一个新的二进制补码。

<< 表示左移操作,可以把一个补码向左移动指定的位数。

如果移动后没有丢失有效信息则新数据是原有数据的 2 的 n 次方倍。

>> 表示右移操作,可以把一个补码向右移动制定的位数。如果被移动的数字是无符号数则左边补充 0,否则左边补充符号位。

如果移动后没有丢失有效信息则原数据是新数据的 2 的 n 次方倍。

6. 分别写出 bool, int, float, 指针类型的变量 a 与 “零” 的比较语句。

bool :

if ( !a ) or if(a)

int :

if ( a == 0)

float :

const float EXP = 0.000001 // 定义一个精度,详见下面分析;

if ( a <= EXP && a >= -EXP) // 在这个精度范围内,就认为是 0;

pointer :

if ( a != NULL) or if(a == NULL)

分析:说明 EXP 是一个精度类型,计算机中数据以二进制存储,将浮点数的零转为二进制存储是有误差的;

所以,在精度范围内,我们就认为是零;这样的话,就不能直接用等于或者不等于了,而需要用一个范围来表示;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: