c的数据类型详解与逻辑运算

1.整数类型

数据类型所占字节范围
char1字节-128 ———127
short2字节-32768——32767
int取决于编译器
long取决于编译器
long long8字节
那么问题来了,如何表示负数呢?

一个新概念:补码
二进制补码较为常见,简单来说,正整数的补码就是它本身的二进制,负整数的补码则为与之将相应的正整数的二进制中1与0相互交换
比如:-1的补码就是1111 1111,

数的范围

1个字节=8位,

unsigned:在整数类型前加上unsigned可以把该类型变成不带符号的整数,

若一个变量想表示自己是unsigned可以在后面加上u或者U

  • 例 255U
整数越界:在我们的单个整数类型当中,可以将他的范围理解为一个圆圈,当一个数走到127时,它再做加1的话它的值就变成-128。如下图:

其他数据类型同理,此处以char为例。。。。
在这里插入图片描述

整数的输入与输出
数据类型 / 进制输入与输出
int%d
unsigned%u
long long%ld
unsigned long long%lu
8进制%o
16进制%x
在这么多数据类型选哪个好呢?

没有特殊需要,就选择int

在整数类型当中,还有一个特殊的类型——char

char —— 字符类型
用单引号表示,例:char c =‘1’;这里的变量c表示一个字符1
输入与输出都是%c

逃逸字符:
字符意义字符意义
\b回退一格\ "双引号
\t到下一个表格位\ ’单引号
\n换行\ \反斜杠本身
\r回车

2.浮点数类型

类型字长有效数字
float327
double6415
输出精度

浮点数用%f输出,而在%后面加上 .数字 表示输出小数点后多少位;
printf("%.5f",0.00458);
printf("%.10f",0.00458);
printf("%.20f",0.00458);
看下输出结果
在这里插入图片描述

超出范围的浮点数

printf输出inf表示该数超出范围
printf输出nan表示该数不存在

在这么多数据类型选哪个好呢?

没有特殊需要,就选择double


3.逻辑类型

bool

使用该类型时,要先定义一个 #include <stdbool.h>

4.指针类型


5.自定义类型


sizeof()
给出某个变量或类型在内存当中占据的字节,sizeof是静态运算符。在括号内部不做计算
例如:printf(“sizeof(int)=%d”,sizeof(int)); 其他数据类型同理
在这里插入图片描述


数据类型转换

1,自动数据类型转换

当俩个数据类型不相同时,会自动转换为较大的类型
char >> short >> int >>long >>long long
int >> float >>double

对于printf输出而言,任何比int小的数据类型都会转换为int
同理 float都会转换为double

而scanf输入不会,要输入short类型,需要%hd

2,强制数据类型转换

数据类型)值
例 printf("%d",(int)105.5); 会输出 105
其他数据类型同理。。。。


逻辑运算

名称符号
俩条竖线
&&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Modify_QmQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值