C里面的类型字节长度和范围

32位平台


char 1个字节8位

short 2个字节16位

int 4个字节32位

long 4个字节

long long 8个字节

指针 4个字节

64位平台

char 1个字节

short 2个字节

int 4个字节

long 8个字节

long long 8个字节

指针 8个字节

范围

char -128 ~ +127 (1 Byte)
short -32767 ~ + 32768 (2
Bytes)
unsigned short 0 ~ 65536 (2 Bytes)
int
-2147483648 ~ +2147483647 (4
Bytes)
unsigned int 0 ~ 4294967295 (4 Bytes)
long long
-9223372036854775808 ~ +9223372036854775807 (8 Bytes)
double 1.7 *
10^308 (8 Bytes)

双精度浮点数(double)使用
64 位(8字节) 来存储一个浮点数。 它可以表示十进制的15或16位有效数字,其可以表示的数字的绝对值范围大约是\( 1.7 \times 10^{-308}
, \text{1.7} \times 10^{308} \)

sign bit(符号): 用来表示正负号,1bit

exponent(指数): 用来表示次方数,11bits

mantissa(尾数): 用来表示精确度,52bits

\(\text{Mantissa} \times \text{2}^\text{exponent}\)

单精度浮点数使用32位(4字节)存储。

第1位表示正负,中间8位表示指数,后23位表示尾数。

C里面的类型字节长度和范围,布布扣,bubuko.com

时间: 2024-10-14 19:07:15

C里面的类型字节长度和范围的相关文章

Java String类型数据的字节长度

问题描述: 向Oracle数据库中一varchar2(64)类型字段中插入一条String类型数据,程序使用String.length()来进行数据的长度校验,如果数据是纯英文,没有问题,但是如果数据中包含中文,校验可以通过,但是在数据入库时经常会报数据超长. 问题分析: 既然问题是数据超长,那么问题应该就是出在数据长度校验上,也就是出在String.length()这个方法上,来看看JDK是如何描述这个方法的: [plain] view plain copy length public int

mysqlint类型的长度值mysql在建表的时候int类型后的长度代表什么

详解mysql int类型的长度值 mysql在建表的时候int类型后的长度代表什么 是该列允许存储值的最大宽度吗 为什么我设置成int(1), 也一样能存10,100,1000呢. 当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查阅了一些资料, 也仔细的看了mysql手册关于int data type的说法. 以下是每个整数类型的存储和范围

详解mysql int类型的长度值问题【转】

mysql在建表的时候int类型后的长度代表什么? 是该列允许存储值的最大宽度吗? 为什么我设置成int(1), 也一样能存10,100,1000呢. 当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查阅了一些资料, 也仔细的看了mysql手册关于int data type的说法. 以下是每个整数类型的存储和范围(来自mysql手册) 类型 字

详解mysql int类型的长度值问题

我的朋友海滨问我mysql在建表的时候int类型后的长度代表什么? 是该列允许存储值的最大宽度吗? 为什么我设置成int(1), 也一样能存10,100,1000呢. 当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查阅了一些资料, 也仔细的看了mysql手册关于int data type的说法. 以下是每个整数类型的存储和范围(来自mysql

因未指定NVARCHAR类型的长度而导致的问题

1 问题重现 (1)准备测试数据 新建数据表tb_Student并插入下图所示的测试数据. 图1 数据表tb_Student的数据 (2)新建查询 DECLARE @teacher_name NVARCHAR SET @teacher_name = '李四' SELECT * FROM tb_Student AS s WHERE s.teacher_name = @teacher_name (3)执行查询 什么也没有得到,但是数据表中明明存在满足条件的数据啊,问题出在哪里? 2 问题分析与解决

java String长度与varchar长度匹配理解(字符和字节长度理解)

string中的length()长度,返回的是char的数量,每个char可以存储世界上任何类型的文字和字符,一个char 而Oracle库中的指定varchar,指的是字节长度.不是字符.字符和字节之间还有编码格式的转换嘞,对应具体一个字符用多少字节编码问题. 而Oracle库中的指定varchar,指的是字节长度.不是字符.字符和字节之间还有编码格式的转换嘞,对应具体一个字符用多少字节编码问题. 而Oracle库中的指定varchar,指的是字节长度.不是字符.字符和字节之间还有编码格式的转

C++中各种数据类型占据字节长度

准备校招笔试的时候经常遇到C++某个数据类型占据多少个字节的问题,查阅了下资料,总结如下: 首先罗列一下C++中的数据类型都有哪些: 1.整形:int.long 2.字符型:char.wchar_t 3.布尔型:bool 4.浮点型:float.double 5.指针 一.整形 int占据操作系统一个内存单元的大小.long跟int相同 早先16位操作系统一个内存单元是16位,所以是2个字节:32位系统一个内存单元是是32位,所以是4字节:64位操作系统一个内存单元是16位,故占8个字节. 二.

Sqlserver查询表结构信息-字段说明、类型、长度等信息

Sqlserver 中查询表结构信息-字段说明.类型.长度等信息综合语法. SELECT 表名 = d.name,--case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = a.name, 标识 = case when COLUMNPROPERTY( a.id,a.name,'

WPF TextBox按字节长度限制输入

前两天做一个项目的时候,由于页面没有限制TextBox的输入长度,所以,后台直接报错了,超出数据库最大的长度. 数据库的长度是按照字节来计算的,而且不同的编码格式,汉字占用的字节长度又不相同,比如,我们用的是UTF8,一个汉字是3个字节,而默认的Default,一个汉字是2个字节. TextBox有个MaxLength属性,但是这个属性是不太合乎要求的,因为这个长度,是限制了输入的长度,比如设置20,则无论是数字.字母.汉字最大的长度都是20个,但是,对于数据库来说,长度却不相同了, 所以,不能