C语言:字符型、整型和浮点型数据的取值范围

C语言 基础开发----目录


win64操作系统 下的各数据型的取值范围。


一、各数据类型数据----字节数

数据类型 char short int long long long float double
字节数 1 2 4 4 8 4 8

计算存储空间相关介绍:C语言:关键字—sizeof(计算存储空间)

具体代码解析:

#include <stdio.h>

int main(int argc, char *argv[])
{
    
    
	printf("char = %d\n",sizeof(char));
	printf("short = %d\n",sizeof(short));
	printf("int = %d\n",sizeof(int));
	printf("long = %d\n",sizeof(long));
	printf("long long = %d\n",sizeof(long long));
	printf("float = %d\n",sizeof(float));
	printf("double = %d\n",sizeof(double));

	return 0;
}

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

二、字符型数据----取值范围

数据类型 数据类型符 字节数 数值范围 说明
字符型 char 1 -128 ~ +127 第一位是符号位:0是正数,1是负数
剩下7位是数据位:-27 ~ 27-1
无符号字符型 unsigned char 1 0~255 8位数据位:0 ~ 28-1

具体代码解析:

#include <stdio.h>

int main(int argc, char *argv[])
{
    
    
  char cdata[7] ={
    
    -129,-128,-1,0,1,127,128} ;
  printf("%d,%d,%d,%d,%d,%d,%d\n",cdata[0],cdata[1],cdata[2],cdata[3],cdata[4],cdata[5],cdata[6]);
  
  unsigned char ucdata[6] ={
    
    -1,0,1,127,255,256} ;
  printf("%d,%d,%d,%d,%d,%d\n",ucdata[0],ucdata[1],ucdata[2],ucdata[3],ucdata[4],ucdata[5]);
  
  return 0;
}

运行结果如下:

在这里插入图片描述

字符型数据在赋值-128到127之内,数据正常。
无符号字符型数据在赋值0到255之内,数据正常。

三、整型数据----取值范围

数据类型 数据类型符 字节数 数值范围 说明
短整型 short (short int) 2 -32768 ~ +32767 第一位是符号位:0是正数,1是负数。
剩下15位是数据位:-215 ~ 215-1
无符号短整型 unsigned short 2 0 ~ 65535 16位数据位:0 ~ 216-1
整型 int 4 -2147483648~ +2147483647 第一位是符号位:0是正数,1是负数。
剩下31位是数据位:-231 ~ 231-1
无符号整型 unsigned int 4 0~ 4294967295 32位数据位:0 ~ 232-1
长整型 long (long int) 4 -2147483648~ +2147483647 第一位是符号位:0是正数,1是负数。
剩下31位是数据位:-231 ~ 231-1
无符号长整型 unsigned long 4 0~ 4294967295 32位数据位:0 ~ 232-1
长长整型 long long(long long int) 8 -9223372036854775808~ +9223372036854775808 第一位是符号位:0是正数,1是负数。
剩下63位是数据位:-263 ~ 263-1
无符号长长整型 unsigned long long 8 0~ 18446744073709551615 64位数据位:0 ~ 264-1

具体代码解析:

#include <stdio.h>

int main(int argc, char *argv[])
{
    
    
	short sdata[7] ={
    
    -32769,-32768,-1,0,1,32767,32768} ;
	printf("%d,%d,%d,%d,%d,%d,%d\n",sdata[0],sdata[1],sdata[2],sdata[3],sdata[4],sdata[5],sdata[6]);

	unsigned short usdata[6] ={
    
    -1,0,1,32768,65535,65536} ;
	printf("%d,%d,%d,%d,%d,%d\n",usdata[0],usdata[1],usdata[2],usdata[3],usdata[4],usdata[5]);

	return 0;
}

运行结果如下:

扫描二维码关注公众号,回复: 15676428 查看本文章

在这里插入图片描述

四、浮点型数据----取值范围

数据类型 数据类型符 字节数 符号位 指数位 位数位 数值范围 有效数字(十进制)
浮点型 float 4 1 8 23 -2 128~ +2128
约等于-3.4x1038 ~ +3.4x1038
8位
双浮点型 double 8 1 11 52 -2 1024~ +21024
约等于-1.797x10308 ~ +1.797x10308
16位

取值范围(指数决定)

浮点型----float

float 指数位有8位,正常取值范围为0~256。
由于指数也是有正负的,所以存储数据时,是实际值加上 中间值127后存储的。
因此float 指数的取值范围是 -127 ~ 128

所以float数据的取值范围:-2 128~ +2128

双浮点型----double

double 指数位有11位,正常取值范围为0~2048。
由于指数也是有正负的,所以存储数据时,是实际值加上 中间值1023后存储的。
因此float 指数的取值范围是 -1023 ~ 1024

所以float数据的取值范围:-2 1024~ +21024

有效数字(尾数决定)

待更新。。。


猜你喜欢

转载自blog.csdn.net/MQ0522/article/details/129221581