当前位置:网站首页>C语言——数据类型、基本数据类型的取值范围
C语言——数据类型、基本数据类型的取值范围
2022-07-26 22:49:00 【Lydialyy】
目录
一、数据类型

1.基本类型
(1)整数类型
- short int
- int
- long int
- long long int
(2)浮点数类型
- float
- double
- long double
(3)字符类型
- char
(4)布尔类型
- _Bool
(5)枚举类型
- enum
2.sizeof运算符
sizeof 运算符用于获得数据类型或表达式的长度
如:-sizeof(object); //sizeof(对象)
-sizeof(type_name); //sizeof(类型)
-sizeof object; //sizeof 对象
代码举例:
#include <stdio.h>
int main()
{
int i;
char j;
float k;
i = 123;
j = 'C';
k = 3.14;
printf("size of int is %d\n",sizeof(int));
printf("size of i is %d\n",sizeof(i));
printf("size of char is %d\n",sizeof(char));
printf("size of j is %d\n",sizeof j);
printf("size of float is %d\n",sizeof(float));
printf("size of k is %d\n",sizeof k);
return 0;
} 代码运行结果:

分别打印各类型所占字节:
#include <stdio.h>
int main()
{
printf("int = %d\n",sizeof(int));
printf("short int = %d\n",sizeof(short));
printf("long int = %d\n",sizeof(long));
printf("long long int = %d\n",sizeof(long long));
printf("char = %d\n",sizeof(char));
printf("_Bool = %d\n",sizeof(_Bool));
printf("float = %d\n",sizeof(float));
printf("double = %d\n",sizeof(double));
printf("long double = %d\n",sizeof(long double));
return 0;
}运行结果(设备不同,结果可能也不同):

3.signed和unsigned
signed:代表有符号的,第一个位代表正负,剩余的代表大小,例如:signed int 大小区间为-128-127。(默认为signed)
unsigned:代表无符号的,所有的位都为大小,没有负数,例如:unsigned int 大小区间为:0-255。
- [signed] short [int]
- unsigned short [int]
- [signed] int
- unsigned int
- [signed] long [int]
- unsigned long [int]
- [signed] long long [int]
- unsigned long long [int]
代码举例:
#include <stdio.h>
int main()
{
short i;
unsigned short j;
i = -1;
j = -1;
printf("%d\n",i);//d为打印带符号的
printf("%u\n",j);//u为打印不带符号的
return 0;
}运行结果:

可见,打印 j 时,结果并不是我们期望出现的-1,而是65535,这与数据类型的取值范围有关。
二、基本数据类型的取值范围
1.比特位
CPU能读懂的最小单位是:比特位,bit,b。每个比特位只能存放二进制数,即0和1.
2.字节
内存机构最小寻址单位:字节,Byte,B
注:1Byte = 8 bit
一个字节能存放的最大的数(
)用二进制表示为:
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
该数转化为十进制为:2147483647
补充:进制

打印
,代码如下:
# include <stdio.h>
#include <math.h>
int main()
{
unsigned int result = pow(2,32) - 1;
printf("result = %u\n",result);
return 0;
}运行结果:

注意:若不加“unsigned”,则输出结果为2147483647.这是因为默认情况下int是signed类型的,也就是说左边第一位是符号位,所以必须加“unsigned”来使其变为一个无符号的整型变量,使得32位都用来存放数值。
3.符号位
- 存放signed类型的存储单元中,左边第一位表示符号位。如果该位为0,表示该整数是一个正数;如果该位为1,表示该整数是一个负数。
- 一个32位的整型变量,除去左边第一位符号位,剩下表示值的只有31个比特位。
4.补码
- 正数的补码是该数的二进制形式。
- 负数的补码需要通过以下几步获得:
(1)先取得该数的绝对值的二进制形式
(2)再将第1步的值按位取反(除符号位)
(3)最后将第2步的值加1
例如:

5.基本数据类型的取值范围
| 数据类型 | 字节数 | 取值范围 |
| char | 1 | -128~127 |
| unsigned char2 | 1 | 0~255 |
| short | 2 | -32768~32767 |
| unsigned short | 2 | 0~65535 |
| int | 4 | -2147483648~2147483647 |
| unsigned int | 4 | 0~4294967295 |
| long | 4 | -2147483648~2147483647 |
| unsigned long | 4 | 0~4294967295 |
| long long | 8 | -9223372036854775808~9223372036854775807 |
| unsigned long long | 8 | 0~18446744073709551615 |
| 数据类型 | 字节数 | 取值范围(绝对值) |
| float | 4 | 1.17549*10^-38~3.40282*10^38 |
| double | 8 | 2.22507*10^-308~1.79769*10^308 |
| long double | 12 | 2.22507*10^-308~1.79769*10^308 |
边栏推荐
猜你喜欢

定时器中断实验

FID index reproduction step on the pit to avoid the pit text generation image FID quantitative experiment whole process reproduction (FR é Chet inception distance) quantitative evaluation experiment s

2022最新抖音直播监控(二)直播间流媒体下载

OSPF静态大实验

机械硬盘选购指南——从选购经历谈起

Introduction to network - Introduction to Enterprise Networking & basic knowledge of network

The gradient descent method and Newton method are used to calculate the open radical

OSPF协议知识汇总
![[paddleseg source code reading] paddleseg export static graph export Trace in py file](/img/63/ac9d1a569816e8addb23bf143364f5.png)
[paddleseg source code reading] paddleseg export static graph export Trace in py file

C语言——字符和字符串、算术运算符、类型转换
随机推荐
解决方案:炼丹师养成计划 Pytorch+DeepLearning遇见的各种报错与踩坑避坑记录(一)
[reprint] GPU compute capability table
OSPF static experiment
2022最新抖音直播监控(二)直播间流媒体下载
SQL anti injection regular expression
TCP的三次握手与四次断开
2022zui new Tiktok 24-hour round robin live broadcast monitoring (I) live broadcast room start-up monitoring
Flink1.13.6 detailed deployment method
初识C语言(1)
2022最新直播监控24小时监控(三)直播间弹幕解析
Flink1.13.6详细部署方式
[paddleseg source code reading] paddleseg export static graph export Trace in py file
[详解C语言]一文带你玩转循环结构(for_while_do-while)
OSPF静态大实验
静态综合实验(静态路由、环回接口、缺省路由、空接口、浮动静态的综合练习)
Solution: various error reporting and pit stepping and pit avoiding records encountered in the alchemist cultivation plan pytoch+deeplearning (III)
HCIA动态路由RIP基础实验
6.28大华笔试
Freytek central computing platform 360 degree sensing system solves the challenges behind NOA mass production
测开基础 日常刷题 (持续更新ing...)