1.数据和C

数据类型

整型

关键字意义
short占用空间:2字节 ;占位符:%hd
int占用空间:4字节 ;占位符:%d
long占用空间:4字节 ;占位符:%ld
long long占用空间:8字节 ;占位符:%lld
int32_t在stdint.h头文件中表示32位的有符号整型;同样可以有int64_t……
int_least8_t表示可容纳8位有符号整型中宽度最小的一个整型别名
int_fast8_t表示对8位有符号值而言运算速度最快的整型别名
intmax_t可存储任何有符号整型值

如果一个整型变量的初始化值或赋值为浮点数,则直接丢弃小数部分,不进行四舍五入。

字符型

关键字意义
char如果用ASCII码赋值则直接:char ch = 89;直接赋值ASCII码的数字;如果要赋值字符(字母,数字,操作)或者用八进制,16进制表示的ASCII码,则需要加入’ '单引号:char ch = ‘A’。 占位符:%c

浮点型

关键字意义
float单精度浮点型;占位符:%f
double双精度浮点型; 占位符:%lf
long double比double精度更高的浮点型

十进制浮点型常量的基本形式是指数记数法
例如3141.5926 记:3.1415926e3

无论是初始化还是赋值一个数值,这个数值默认都是double类型,如想要float类型则需要特殊标注出来,例如:float xs = 3.05f;

因为浮点数在内存中存储方式的原因,存储的浮点数输出时可能和初始化时或赋值时不同。
十进制小数转化成二进制时,是将小数部分不断2,每次2后得到的整数部分为1或不足1则取0;如此一直重复下去,有的十进制小数转化为二进制时是无限不循环小数,而存储时只能存储前几十位,会舍去后面的,所以会造成误差。
在这里插入图片描述
如上图,小数部分用二进制表示为:011……

占位符(转换说明)

占位符用处
%d用于int类型
%ld用于long类型
%lld用于long long类型
%c用于char类型
%f用于float或double类型
%e用于float或double类型中,要输出以科学记数法表示的数(带e的数,e代表10)
%a用于float或double类型中,要输出以十六进制科学记数法表示的数(类似于上一条,不过用p代替e,p代表2)
%0用于输出八进制的数(数前面没有0)
%x用于输出十六进制的数 (数前面没有0x)
%#0用于输出八进制的数 (数前面有0)
%#x用于输出十六进制的数(数前面有0x)

当两个变量项相乘时,用于输出的占位符必须是与两变量类型相对应的占位符。

int main(void)
{
	int age;
	long long second = 3.156e7;
	printf("请输入你的年龄:");
	scanf_s("%d", &age);
	printf("你到目前为止度过了%lld秒", age * second);   
	//%lld这个位置的占位符必须是与变量age或second数据类型相对应的占位符
	return 0;
}

数据溢出

可以把数据类型的范围看成一个循环,如果进行初始化或赋值时的数值过大超过上限,则可以把超过上限的部分从下限开始往上加。
例如:char ch1 = 129;则输出结果等同于:char ch2 = -127;的输出结果。(char的取值范围是-128到127)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值