江西省城乡建设培训中心网站,东莞品牌设计公司,长沙装修公司口碑比较好的,网站广告收费标准C语言当中各种数据类型的大小#xff0c;首先要了解有哪些数据类型。 一 字符型#xff1a;
整数#xff08;字符#xff09;类型存储大小值范围char1 字节-128 到 127 或 0 到 255#xff08;2的8次方#xff09;unsigned char1 字节0 到 255#xff08;#xff09;s…C语言当中各种数据类型的大小首先要了解有哪些数据类型。 一 字符型
整数字符类型存储大小值范围char1 字节-128 到 127 或 0 到 2552的8次方unsigned char1 字节0 到 255signed char1 字节-128 到 127
对于字符而言本质上还是数字只不过存放的是字符的ASCII码值根据ASCII码表显示字符。 二 整数类型
在64位系统的编译环境下
整数类型存储大小值范围int 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647unsigned int4字节0 到 65,535 或 0 到 4,294,967,295short2 字节-32,768 到 32,767unsigned short2 字节0 到 65,535long8字节-2,147,483,648 到 2,147,483,647unsigned long8字节0 到 4,294,967,295
知识补充
有符号整数signed
有符号整数通常采用二进制补码形式来表示。补码表示法允许我们使用一个固定数量的位bit来表示正数、负数和零。补码表示法的关键之处在于它使得加法运算在包括负数的情况下也能保持简单性。
对于有符号整数
最高位最左边的位 是符号位。0表示正数或零1表示负数。剩下的位用于表示整数的数值部分或称为幅度。
补码计算
正数的补码就是其本身。负数的补码是其绝对值的二进制表示原码取反后加一。
例如一个8位的有符号整数
5 的原码、反码和补码都是 0000 0101-5 的原码是 1000 0101反码是 1111 1010补码是 1111 1011
无符号整数unsigned
无符号整数则直接使用所有位来表示整数的数值部分没有符号位。因此无符号整数的范围是从0到2^n-1其中n是整数的位数。
例如一个8位的无符号整数可以表示的范围是0到255即0000 0000到1111 1111。
存储和解释
在内存中有符号和无符号整数都是以二进制的形式存储的。它们之间的区别主要在于我们如何解释这些二进制位。当我们读取一个整数值时如果我们将其解释为有符号的那么计算机会使用补码规则来解释最高位作为符号位如果我们将其解释为无符号的那么计算机会将所有位都视为数值部分。
示例
假设我们有一个8位的二进制数 1000 0001
如果我们将其解释为有符号整数那么它表示的是-127这是-1的补码表示。如果我们将其解释为无符号整数那么它表示的是129。
三浮点型
不同的浮点型我们往往不需要那么高的精度去存储有时候常常约束小数部位。
浮点类型存储大小值范围精度float4 字节1.2E-38 到 3.4E386 位有效位double8 字节2.3E-308 到 1.7E30815 位有效位long double16 字节3.4E-4932 到 1.1E493219 位有效位 四 布尔类型
在C语言标准中并没有直接定义布尔boolean类型。然而从C99标准开始C语言引入了一个头文件 stdbool.h该头文件定义了布尔类型以及两个宏true 和 false。
所以要使用布尔类型 ,必须包含头文件stdbool.h
当你包含 stdbool.h 头文件后你可以使用 bool 作为布尔类型由于布尔类型大小只有一个bit位只能表示0和1所以我们往往用它表示真假或者表示对错。对于单片机当中常常用于
true 1和 false(0) 作为布尔值。这使得可以调用函数的时候可以判断程序执行有无问题。
整数类型存储大小值范围bool 1 bittrue 1 false(0)
对于结构体由于计算内存大小比较特殊我单独写在自定义数据类型当中。