标签:入门 int double float 数据类型 整型 字节 分配 语言
基本数据类型:对数据分配存储单元的安排
比如int a=0;就是对a分配了4个字节的存储单元,这个存储单元用来存放整型的数据
一.
1.int(整型)
int 分配4字节 32位
数据范围 上限 2^31-1
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1... |
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
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0... |
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类型
标签:入门,int,double,float,数据类型,整型,字节,分配,语言 来源: https://blog.csdn.net/weixin_63460193/article/details/122774430
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。