【答疑解惑】C语言里面如何计算数据类型取值范围?

先看一个网友的问题:

初学者有不少会对数据类型的取值范围有疑问,数据类型的取值范围关系到定义合适的变量,尤其是在进行嵌入式开发时更要清楚。这里有必要介绍一下各个数据类型的取值范围以及在内存中所占的长度。以下对常用的整形数据类型列了一个表(char在根本上也是整形)

16位机器

32位机器

数据类型

所占位数

取值范围

所占位数

取值范围

Char

8

-128~127

8

-128~127

int

16

-32768~32767

32

-21亿~21亿

short

16

-32768~32767

16

-32768~32767

long

32

-21亿~21亿

32

-21亿~21亿

Unsigned char

8

255

8

255

unsigned int

16

0~65535

32

0~42亿

unsigned short

16

0~65535

16

0~65535

unsigned long

32

0~42亿

32

0~42亿

上表中的所占位数是我们有必要记住的,取值范围是怎么算的呢?

举例说明:

比如有符号char占8位,那么最高位是符号位,那么最大整数就是27-1,也就是127,最小负数就是-27。其它类型也是这样计算的。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-09-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

【Java提高二】三大特性-继承

【Java提高】三大特性-继承 在《Think in java》中有这样一句话:复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够...

3349
来自专栏程序你好

.Net CSharp语言中When关键字的用法

c# 6引入了when关键字。when关键字是通过某些特定标准来过滤catch块中的异常的一种方法。后来在c# 7中扩展到case语句。我们将介绍如何在异常处理...

970
来自专栏Modeng的专栏

Javascript数组系列二之你不了解的迭代1

我们在《Javascript数组系列一之栈与队列》中介绍了一些数组的用法。比如:数组如何表现的和「栈」一样,用什么方法表现的和「队列」一样等等一些方法,因为 J...

1244
来自专栏编程

pythonic之路(一)

pythonic之路(一) 一、 中不要直接将语句与 、 、 做比较 python中隐含为 的对象: 数值 (不是字符 ) 空容器,比如空list 、空tupl...

17310
来自专栏Golang语言社区

go语言:函数参数传递详解

参数传递是指在程序的传递过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程。比较常见的参数传递有:值传递,按地址传递参数或...

1141
来自专栏企鹅号快讯

PHP弱类型在CTF中的应用

PHP作为世界上最好的语言(然而人生苦短,我用python),在CTF web题中大放异彩,深受出题人的喜爱。P神在对web题出题套路总结的第三条指出,出题人喜...

4625
来自专栏Fundebug

JavaScript中Map和ForEach的区别

993
来自专栏灯塔大数据

干货 | 数据科学入门必读:如何使用正则表达式?

有时候,这些数据中会包含大量文本语料。比如,假如我们需要搞清楚「xxx文件 」中谁给谁发送过邮件,那么我们就要筛查 1150 万份文档!我们可以采用人工方式,亲...

1062
来自专栏chafezhou

小说python中的迭代器(Iterator)

722
来自专栏青玉伏案

算法导论之插入排序和归并排序

  作为一名前线的码农不时地看一下算法和数据结构还是很有必要的,虽然《算法导论》这本书很难啃,但还是有必要啃一下的。算法这东西和某种编程语言关系不大,在大学的课...

2107

扫码关注云+社区