C语言数据类型-取值范围-打印形式疑点讲解

  1.  数据类型
    1. 1 有符号

例子:

有符号字符型signed char:最高位(最左位)为符号位

取值范围:10000000(-128)-- 01111111(+127)

详解:

//有符号数就是最高位为符号位,0代表正数,1代表负数

//C语言中变量默认为有符号的类型, unsigned 关键字声明变量为无符号类型。

//有符号最左位1代表负数(2^7=128)—最左位0代表正数(2^0+……2^6=127)

//long有可能是4个字节或8个字节这取决于编译器。

名称

数据类型

字节/比特位

取值范围

char

字符数据类型

1 字节=8 比特

-2^7~2^7-1(-128~127)

short

短整型

2 字节=16 比特

-2^15~2^15-1(- 32,768 ~32,767)

int

整型

4 字节=32 比特

-2^31~2^31-1

long

长整型

4 字节=32 比特

-2^31~2^31-1

long long

更长的整型

8 字节=64 比特

-2^63~2^63-1

    浮点类型

浮点类型类型

比特位

有效数字

取值范围

float(单精度浮点数)

32

6~7

-3.4*10^38~+3.4*10^38

double(双精度浮点数)

64

15~16

-1.7*10^-308~1.7*10^308

long double(长双精度浮点数)

128

18~19

-1.2*10^-4932~1.2*10^4932

  1. 2 无符号

无符号字符型unsigned char:没有符号位都是数值位

取值范围:00000000(0)—11111111(255)

//无符号全0(0)—全1(2^0+……2^7=255)

名称

数据类型

字节/比特位

取值范围

unsigned char

字符数据类型

1 字节=8 比特

0~2^8-1(0~255)

unsigned short

短整型

2 字节=16 比特

0~2^16-1(0~65535)

unsigned int

整型

4 字节=32 比特

0~2^32-1(0 ~ +4,294,967,295)

unsigned long

长整型

4 字节=32 比特

0~2^32-1

unsigned long long

更长的整型

8 字节=64 比特

0~2^64-1

//那么为什么没有无符号浮点数呢?

因为浮点数是按照整数部分,小数部分,指数部分存放的。运算也是分开来运算的。所以unsigned无法作用于float,所以定义无符号的浮点型会出错。

1.3 打印形式

%d

//打印整型(十进制)

%C

//打印字符

%f

//打印单精度浮点数-小数

%p

//以地址的形式打印

%x

//打印十六进制

%lf

打印双精度浮点数-小数

1.4 数据类型讲解

char-字符类型

#include<stdio.h>

int main()

{

    char ch = 'A';//向计算机申请存放一个字符A,存放到ch这个变量中

    printf("%C\n", ch);//以字符的形式打印数据

    return 0;//返回一个整型

}

结果:A

因为%C打印出来的是字符

int-整型类型

#include<stdio.h>

int main()

{

    int age = 20;//整型变量age,20存放到age这个变量中

    printf("小明的年龄=%d岁\n",age);//打印整型-十进制数据

    return 0;

}

  数据类型所对应的字节

C语言数据类型-取值范围-打印形式疑点讲解

#include<stdio.h>

int main()

{                                               //字节//可存放比特位//注意事项

    printf("%d\n", sizeof(char)); //1个//8位//只能用单引号' '来包围,

    printf("%d\n", sizeof(short));//2个//16位//

    printf("%d\n", sizeof(int));  //4个//32位//

    printf("%d\n", sizeof(long)); //4个//32位//有可能是4或者8取决编译器的数据类型

    printf("%d\n", sizeof(long long));//8个//64位

    printf("%d\n", sizeof(float)); //4个//32位

    printf("%d\n", sizeof(double));//8个//64位

    return 0;

}

//计算机是硬件—通电—正电为1—负电为0

//1 bit可存放0或者1,

//一个字节可存放8个比特位的大小

//存在这么多类型,是为了更加丰富的表达生活中的各种值

上一篇:剑指 Offer 32 - I. 从上到下打印二叉树


下一篇:32、平坦模型