c语言入门——基本数据类型

基本数据类型:对数据分配存储单元的安排

比如int a=0;就是对a分配了4个字节的存储单元,这个存储单元用来存放整型的数据

一.

1.int(整型)

int 分配4字节 32位

数据范围 上限 2^31-1

0111111111...

1个方框代表1位:第一位是符号位,符号位为1表示负数,为0表示正数。所以最大的数就是第一位是0,后面的31位都是1。计算机都是把数据作为二进制数来处理的,方框中的数只能是0,1

把这个值算出来就行,二进制计算方法,位子上的数乘以权,也就是2^0+2^1+2^2+...2^30=2^31-1

(用等比数列求和公式),还有一种方法:因为10000...-1=01111...,这样更直观

下限  -2^31

1000000000...

unsigned int:无符号整型,只能是正数,正数能取到的范围更大

short int:短整型 分配2字节

long int:长整型 分配4字节,与int一样,一般不用它,为什么长整型和整型一样呢?整型以前是分配2字节,只是它现在进行了改进

long long int:双长整型 分配8字节

2.浮点型

float 分配4字节

double 分配8字节

float pi=3.1415;这没什么问题,但是会有警告(从“double”到“float”截断),因为计算机会默认把小数看成double类型的,如果非要用float,那就改写成 float pi=3.1415f;

还有不管是float类型去输出,还是double类型去输出,计算机都是保留小数点后六位然后输出

3.字符型

char 分配1字节

可以理解为char只能接受1个字符,一个字符占一个字节

如果写成char ch="abcde",就不对了,想要接受字符串必须要借助字符数组

二.

隐式转换:不需要程序员干预,由计算机自己完成

char--int--float--double 左边的可以隐式转化成右边的

double a=1;这里就是int隐转到了double

int a=1.23;这就不对了,会发生数据溢出

可以把char想象成小杯,int想象成中杯,float想象成大杯,double想象成超大杯

如果把double里面的东西放到int里面,就会有一部分放不进去,这一部分就丢失了

强制转换:就是由程序员操作完成的

格式:(类型名)(表达式)注意括号是不能省的 int a=(int)(1.23),有精度丢失的风险

看下面一段代码:

float a=1.23f;

int b=(int)a;

printf("%f %d",a,b);

得出结论:强制转换是对数据本身操作,变量自身并不会发生改变,a还是float类型,没有变成int类型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值