从零开始学习c语言|3.2、数据类型取值范围

文章介绍了C语言中数据类型的取值范围,重点讨论了整型的限制。通过代码示例展示了有符号整型和无符号整型的区别,指出在32位系统中,一个int型变量默认为有符号,最大能表示的数值为2^31-1,而无符号整型可以表示到2^32-1。此外,还解释了补码的概念,用于说明有符号整数的存储方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从零开始学习c语言|3.2、数据类型取值范围

一、基本概念
1、bit:比特、b,计算机能识别的最小单位。
2、Byte:字节,B,内存中最小寻址单位,1B=8bit;
二、取值范围

一个字节最大能表示的数即为8个1;
在这里插入图片描述
即2^8-1;

代码示例

#include <stdio.h>
#include <stdbool.h>
#include <math.h>
int main()
{

   int i = pow(2, 32) - 1; // int整型有4个字节,即32位,32位能表示的最大数为32个1;
   printf("int整型最大能表示的数为%d\n", i);

   return 0;
}

运行结果
在这里插入图片描述
由运行结果得知,有溢出警告,这是由于int整型,默认为有符号,即最高位是符号位,所以得在int前加上无符号限定符

代码示例

#include <stdio.h>
#include <stdbool.h>
#include <math.h>
int main()
{

   unsigned int i = pow(2, 32) - 1; // int整型有4个字节,即32位,32位能表示的最大数为32个1;
   printf("int整型最大能表示的数为%u\n", i);

   return 0;
}

运行结果
在这里插入图片描述

另:有符号的数能表示多大的范围呢?

引进一个概念:事实上计算机是用来补码存储整数

补码
正数的补码与正数的原码相同
负数的补码是除第一位符号位不变,其余按位取反,最后+1
在这里插入图片描述

故1字节能表示的最大的值为
在这里插入图片描述

常见数据类型的取值范围

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值