赞
踩
#位,字节,字
1.位是计算机中最小的存储单位,bit,用于存储1或0;
2.字节长度是固定的,1个字节是8位,是计算机最常用的存储单元。
3字的长度是不固定的,是设计计算机时给定的自然长度,由计算机个体决定,8位的微型计算机字长便是8位,个人计算机有16位的,48b的,64b的,计算机的字长越大,其数据转移越快,允许访问的内存也越多。
#数据类型
##分类
①有无符号分为有符号类型和无符号类型
②数据特点分为整型,浮点型(又称为实型),字符型,枚举型,数组型,结构体型。
##各种类型的声明以及所能表示的数据类型和长度
①整型,short,规定占用的空间不能多于int,int,最少占16位即2个字节,通常是4个字节32位int;long规定占用的空间不能少于int。long long占用的空间不能少于64位。unsigned_int64表示64位无符号整型,打印时用%lld或者%l64d(d前为小写L,不是数字一,不同的编译器使用的说明不同)转换说明,也可以用%llu或%llu;long long ago很少用到。
short a;
int b;
long c;
long long d;
②浮点型
浮点型一般占用4个字节,32位,其中最高的1位存储符号位,接着8位存储指数e,最后23位存储小数部分,存储范围是0到2的23次方-1。注意一点e也有正负,所以存储e的8位不是直接存储e,而是存储e+127,指数范围是2的负7次方到2的7次方-1,计算机内实际存储的是0~255,大于127的是正,小于127的是负。例如e=2,存储的是129,返回时129-127=2。e=-2时,存储的是125,返回时125-127=-2。
③char字符型
char实际是整型的一种,占8位,按照ASCII编码标准,编号0~255每个编号对应一个字符,我的收藏中有ASCII编码表。
##不同类型的数据在相互运算时类型自动提升问题
类型提升原则:
1 为防止精度损失如果必要的话类型总是被提升为较宽的类型
2 所有小于整型的类型在计算之前都会被转换成整型
3 计算出结果后再转为左值类型并赋给左值
我们也可以强行进行数据类型转换:类型转换符
类型转换运算符优先级低于括号,高于运算符
测试代码:
#include<stdio.h> int main(void) { int a = 3; int b = 17; float c = 31.0f; //类型转换运算符优先级低于括号,高于运算符。 printf("%f float(a/b)*c \n",(float)(a/b)*c); //首先进行a/b运算,然后把结果转成float,然后与c相乘 printf("%f (float(a/b))*c \n",((float)(a/b))*c); //首先进行a/b运算,然后把结果转成float,然后与c相乘 printf("%f (float(a/b))*c \n",((float)) a/b*c); //首先把a转成浮点,然后除以b,然后乘以c printf("%f a/b*c \n", a/b*c); //运算规则同数学运算。a/b=0, 0*c=0.00000f printf("%f a/(b*c) \n", a/(b*c)); //运算规则同数学运算。b*c=527.00000f, a/527.0000f=0.005693 }
运行结果:
0.000000 float(a/b)*c
0.000000 (float(a/b))*c
5.470588 (float(a/b))*c
0.000000 a/b*c
0.005693 a/(b*c)
##打印问题
printf("%2.3f", a);
2表示提供两个字符空间,3表示小数点后保留3位。
##signed int用%d打印,unsigned int用%u打印
%d在解释过程中第一位数据代表了符号,%u第一位数据代表了数据值
%d解释过程:
1.第一位是1,所以为负值。
2.由补码再求补码
%u解释过程:
直接将其按原码处理
##整型和浮点型的存储方案不同
计算机把浮点数分位小数部分和指数部分,并分开存储。而整型只有指数部分。
3.16E7表示3.16乘以10的七次方
##有符号类型和无符号类型
1无符号类型声明,unsigned,数据范围变大,最高位不表示符号,表示数据,输出时用%u作为转换说明,%u会将最高位解释为数值。
2有符号类型,不经过unsigned声明的都是有符号类型,特别强调可以用signed声明变量。最高位表示符号,负为1,正为0,usigned int和int声明的变量是一样的,但signed特别强调了变量为有符号的。输出时使用%d作为转换说明,%d会将最高位解释为符号。
##unsigned __int64 打印方法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。