标题一、数据类型:
(一)概况:
unsigned无符号正数
signed有符号
*有符号的二进制最高位作为符号位。
基本数据类型:
1,逻辑类型:只有两个量true和false,表示逻辑真值和逻辑假值。
2,整数类型:包括char, short, int和long。
3,浮点类型:包括float和double。
4,void类型:主要用于说明不返回值的函数或指向任一类型的指针等。
*正数的补码和原码相同。
*我们输入的都视为补码,当计算机输出时都会转换为原码输出!
(二)基本数据类型——bool
bool类型 <stdbool.h> _Bool基本类型:
值域:非零(true),零(false、0)
bool
例如:
if ( -1 )
x=12 ;
else
x=18 ;
上面0.5是非零数值,逻辑值为真,所以x赋给的是12,而不是18。
注:
bool型必须有#include<stdbool.h>才可以运行,不然不能识别。
_bool能够被识别,是基本数据类型,不需要头文件,但是如果代码中需要用true和false,需要加头文件定义。
(三)基本数据类型——char
使用char数据类型的变量需要特别注意,防止数据超出值域,思考下列几个语句:
char c1= 128; //出错,数据越界(-128)
char c1= 129; //出错,数据越界(-127)
unsigned char c2= -1; //出错,数据越界(255)
注:·一个字节长度:8位2进制数。
·有符号时:第一位1=负数,0=正数。
·规定-128的补码为:10000000
(四)基本数据类型——short
short类型<limits.h>
两个字节= 2*8=16位二进制数
(五)基本数据类型——int
(六)基本数据类型——long
(七)基本数据类型——浮点类型
·float 为小数 不能取余。
(八)强制数据类型转换
·强制数据类型的转换是指采用某种方式将某种数据类型强制转换成指定的数据类型。包括显式的数据类型转换,和隐式的数据类型转换。
例如,
int a=22, b=0 ;
float c = 24.87, d= 3.3;
b = (int) (a + c +d) ; // b为50
强制类型转换符后面的表达式如存在复杂运算,就一定要用小括号括起来
强制类型转换符是一种不安全的转换,一般都是将高级类型转换成低级类型,要丢失数据的精度;
强制类型转换并不改变表达式中变量的数据类型和其值。
(九)查值域边界:<limits.h>
#include <limits.h>
printf(“char:%d-%d\n”,SCHAR_MIN,S……具体查man手册
I:int型
L:long型
P:指针型
二、常量
(一)整形常量
·常量是指在程序运行期间其数值不发生变化的数据。
·整型常量通常简称为整数。
·整数可以是十进制数、八进制数和十六进制数。
例如,十进制的数值3356可以有下列二种不同的表示形式:
八进制数 06434 ——以0开头的数。
十六进制数 0xd1c ——以0x开头的数。
一般不用二进制,二进制数是计算机运行的数据。
(二)浮点常量
·浮点常量又称为实数,一般含有小数部分。
·在C语言中,实数只有十进制的实数。
·分为单精度和双精度。(了解)
单精度的数据类型是float
双精度的数据类型是double
单精度与双精度的区别是单精度的取值范围没有双精度的大(如图)
编译器默认的浮点类型是双精度
·实数有两种表示方法, 即一般形式和指数形式(科学计数法)。
一般形式的实数基本形式如下:[+|-]M.N
例如, 3.5 ,