初识数据类型以及变量定义

变量定义

1. int 基础概念

int 代表整型,默认是有符号类型 ; 主流编译器下 int 占用 4 字节(32 位二进制)

注意点:1 字节 = 8 个二进制位。

示例:int a = 5; 内存中完整 32 位存储:0000 0000 0000 0000 0000 0000 0000 0101

2. int 的数值范围限制

int 固定只有 32 个二进制位,能表达的数字存在上限,分两种情况:

  1. 默认有符号 int 最高 1 位作为符号位(0 表示正数,1 表示负数),剩余 31 位存储数值。 取值范围:-2147483648 ~ 2147483647
  2. 无符号 unsigned int 全部 32 位都用来存储非负数,无符号位。 32 位全 1 二进制:1111 1111 1111 1111 1111 1111 1111 1111,对应十进制 4294967295 取值范围:0 ~ 4294967295

3. 更大范围的整型 long long int

若需要存储超出 int 上限的超大数字,使用 long long int(简写 long long):

  • 占用 8 字节(64 位二进制),可表示的数值区间远大于 int;
  • 同样支持无符号写法 unsigned long long int

4. 数据类型的作用

intunsigned intlong long int 都属于整型数据类型,写在变量名前,用于规定变量在内存中占用的空间大小、存储数字的正负属性、可存储数值的上下限。

还有一些数据类型:

类型 占用字节 二进制位数 取值范围 补充说明
char 1 字节 8 位 signed char:-128 ~ 127unsigned char:0 ~ 255 char 默认是否有符号由编译器决定
signed char 1 字节 8 位 -128 ~ 127 明确有符号字符型
unsigned char 1 字节 8 位 0 ~ 255 无符号,仅存非负数
short / short int 2 字节 16 位 -32768 ~ 32767 简写 short,默认 signed
signed short int 2 字节 16 位 -32768 ~ 32767 显式有符号短整型
unsigned short int 2 字节 16 位 0 ~ 65535 无符号短整型,16 位全 1 最大值
int / signed int 4 字节 32 位 -2147483648 ~ 2147483647 最常用整型,默认有符号
unsigned int 4 字节 32 位 0 ~ 4294967295 32 位全 1 最大值
long long / long long int 8 字节 64 位 -9223372036854775808 ~ 9223372036854775807 标准长整型,主流平台固定 8 字节
signed long long int 8 字节 64 位 同上 显式有符号长长整型
unsigned long long int 8 字节 64 位 0 ~ 18446744073709551615 无符号长长整型

课后练习可以自己定义几个不同的数据类型给它不一样大小的值打印出来看看

可以发现这些值打印都不对

因为都超出这个范围-2147483648 ~ 2147483647

加上 long long 就不会了因为它范围更大了

可以试试 unsigned int a=2147483659 和 unsigned int a= -2147483659 看看为什么

相关推荐
ting94520001 天前
Humalike X Hermes 深度技术剖析:单指令注入群聊社交智能的底层架构、算法与跨 IM 平台实现
人工智能·算法·架构
吴声子夜歌1 天前
Java面试——算法
java·算法·面试
h_a_o777oah1 天前
【图论】Tarjan 缩点:解决有向图中环的问题
c++·算法·图论·acm·强连通分量·缩点·tarjan
Tisfy1 天前
LeetCode 1386.安排电影院座位:哈希表+位运算
算法·leetcode·散列表·题解·哈希表
Nil2081 天前
leetcode 199二叉树的右视图
算法·leetcode·深度优先
M78佐菲1 天前
c语言学习笔记:排序与查找方法整理
linux·c语言·笔记·学习·算法
AI备案指南-满满1 天前
人工智能拟人化互动服务安全自评估报告的评估要点有哪些?
人工智能·算法·安全·机器人·大模型备案·算法备案
LuminousCPP1 天前
数据结构‑二叉树(二):二叉堆从零实现|Heap结构设计 + 建堆优化 + 堆排序深度解析
c语言·数据结构·笔记·二叉树
土司大王1 天前
LeetCode hot100——两两交换链表中的节点
算法·leetcode·职场和发展