【答疑解惑】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 条评论
登录 后参与评论

相关文章

来自专栏chenjx85的技术专栏

leetcode-561-Array Partition I

1887
来自专栏用户画像

迷语博士的难题

两面族是荒岛上的一个新民族,他们的特点是说话真一句假一句且真假交替。如果第一句为真,则第二句是假的;如果第一句为假的,则第二句就是真的,但是第一句是真是假没有规...

751
来自专栏大闲人柴毛毛

剑指 offer代码解析——面试题29数组中出线次数超过一半的数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 分析:本题最直观的思路就是分别统计数组中每个数出现的次数,然后求出最大值,判断是否超过...

3396
来自专栏菩提树下的杨过

as3:Function以及call,apply

Function类在as3中是直接从Object继承下来的,通常开发者定义的每一个function,均可以认为是Function类的一个实例。  如果硬要跟c#...

1899
来自专栏于晓飞的专栏

DualPivotQuickSort 双轴快速排序 源码 笔记

这个算法是Arrays.java中给基本类型的数据排序使用的具体实现。它针对每种基本类型都做了实现,实现的方式有稍微的差异,但是思路都是相同的,所以这里只挑了i...

872
来自专栏数据结构与算法

P1338 末日的传说

题目描述 只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说:三根柱子上的金片每天被移动一次,当所有的金片都被移完之后,世界末日也就随之降临了。 在古老...

2999
来自专栏程序员互动联盟

【编程基础】Java面向对象基础知识

前言: 前面一系列文章讲了Java的一些语法基础知识、Java中的数据类型和Java中的运算符,基本上都是学习Java语言的基础知识,从这一讲开始将会逐步介绍J...

3405
来自专栏积累沉淀

各种排序算法的总结和比较

1 快速排序(QuickSort) 快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。...

1896
来自专栏IT可乐

Java数据结构和算法(七)——链表

  前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷。在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且...

3427
来自专栏我的技术专栏

C++ 引用计数技术及智能指针的简单实现

2523

扫码关注云+社区