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

相关文章

来自专栏菩提树下的杨过

as3:Function以及call,apply

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

1759
来自专栏诸葛青云的专栏

一看就会的C语言笔记——指针函数、函数指针、回调函数

//函数返回值必须用同类型的变量来接受,也就是说,指针函数的返回值必须赋值给同类型的指针变量。

1590
来自专栏IT可乐

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

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

2637
来自专栏我的技术专栏

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

1813
来自专栏King_3的技术专栏

leetcode-561-Array Partition I

1857
来自专栏积累沉淀

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

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

1816
来自专栏CVer

排序算法 | 快速排序(含C++/Python代码实现)

排序算法,就是使得序列按照一定要求排列的方法。排序算法有很多,本文将介绍面试中常常被问到的经典排序算法:快速排序,并分别利用C++和Python进行实现。

1110
来自专栏Brian

C++11基础学习系列一

---- 概述 C++11标准越来越趋于稳定和成熟,国外c++11如火如荼而国内却依然处于观望期。每当提到C++很多程序员都很抵触,特别是学术界的呼声更高一些。...

2664
来自专栏从流域到海域

Python 函数

Python的函数与其他语言的函数概念上是一致的,只是形式上有所不同。在面向过程的编程语言中(C语言),函数是代码的基本组成形式,是功能的基本模块;在面向...

1757
来自专栏Java Edge

2018-09-04Q:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。方法一:递归实现1+2+..+n;

共同点:一,利用利用短路 && 来实现 if的功能;二,利用递归来实现循环while的功能

522

扫码关注云+社区