一、CPU位数和数据类型

在嵌入式开发中,不同数据类型的位数和取值范围由CPU的位数决定,我们可以通过sizeof关键词计算出每一种数据类型的范围。

嵌入式开发中熟练掌握各数据类型的取值范围是很有必要的,尤其在长期运行的设备中。比如我们定义了一个int类型的数据,它的正向最大取值为2147483647,换算成天数:2147483647/1000/3600/24,大约是24.85天,如果你定义了一个每隔1ms加一的变量,那么这个值最多只能用24天,超过24天之后这个计数值就会出现基数问题,从而导bug的产生。

二、整数类型的取值范围

不同数据类型在32位CPU和64位CPU上的字节数和取值范围如下:

数据类型 32位CPU 64位CPU 32位CPU下取值范围
char 1 1 -128~127 (-27~27-1)
unsigned char 1 1 0~255 (0~28-1)
short int 2 2 -32767~32768 (-215~215-1)
unsigned short int 2 2 0~65535 (0~216-1)
int 4 4 -2147483648~2147483647 (-231~231-1)
unsigned int 4 4 0~4294967295 (0~232-1)
long 4 8 -2147483648~2147483647 (-231~231-1)
long long 8 8 (-263~263-1)

三、64位ubuntu下计算出的各数据类型占用的字节数

int main()
{printf("int:%d\r\nunsigned int:%d\r\nshort int:%d\r\nlong:%d\r\nlong long:%d\r\nchar:%d\r\nunsigned char:%d\r\nfloat:%d\r\ndouble:%d\r\nbool:%d\r\nint*:%d\r\n",sizeof(int),sizeof(unsigned int),sizeof(short int),sizeof(long),sizeof(long long),sizeof(char),sizeof(unsigned char),sizeof(float),sizeof(double),sizeof(bool),sizeof(int*));
}

c语言数据类型取值范围相关推荐

  1. C语言深度剖析——关键字sizeof、整型数据存储深入、数据类型取值范围深入

    1.关键字sizeof sizeof 与 strlen 是我们日常打代码时经常使用到的两个"工具".前者是求变量或者类型的大小(单位为字节),后者是求某一字符串的长度.我们很容易产 ...

  2. C语言中短整型取值范围,以c语言中短整型(signed int)的取值范围为例说明各种数据类型取值范围的计算方式与原理...

    在开始我们的正文之前,你需要先了解一下原码.反码.补码这三个概念以及这三者之间的相互转换方式. 在有了一定的了解之后,我们开始我们的介绍.在本文中,我们以短整型为例,给大家介绍该类型的取值范围的计算方 ...

  3. 带你学C带你飞 | printf函数 | 变量 | 常量和宏定义 | 数据类型 | 取值范围 | 字符串 | 运算符

    文章目录 一.printf函数 1.printf函数 2.printf函数课后作业 二.变量 1.变量 2.变量课后作业 三.常量和宏定义 1.常量和宏定义 2.常量和宏定义的课后作业 四.数据类型 ...

  4. python中long类型的取值范围_java基本数据类型取值范围

    在JAVA中一共有八种基本数据类型,他们分别是:byte.short.int.long.float.double.char.boolean 整型 其中byte.short.int.long都是表示整数 ...

  5. c 语言char取值范围,signed char类型取值范围计算

    在C语言程序中,给定一个类型,如何计算这个类型变量的取值范围呢?比如有一个字符型变量定义如下: signed char c: 这个字符变量c的取值范围是[-128,127],是计算出来的呢? 假设字符 ...

  6. c语言字母的范围,C语言字符-C语言char-C语言字符取值范围-嗨客网

    C语言字符教程 '' 包围. C语言字符定义详解 语法 char varname = value; 参数 参数 描述 char 定义字符类型变量使用的类型. varname 变量名. value 可选 ...

  7. Java基本数据类型取值范围(float、double范围勘误)

    对于float和double的取值范围,网上很多有误的,其并不是按位直接计算. 基本类型 字节数 位数 最大值 最小值 byte 1 8 2^7 - 1 -2^7 short 2 16 2^15 - ...

  8. python数据类型取值范围_Python基本数据类型(一)

    classstr(basestring):"""str(object='') -> string Return a nice string representati ...

  9. C语言之有符号无符号整数取值范围

    基础知识点: 关于C语言整数取值范围偶尔性犯迷糊,于是整理了下方法,不再当一个糊涂虫. n位无符号整数,取值范围: 0    ~     ( 2^n - 1 ) n位有符号整数,取值范围: - (2^ ...

最新文章

  1. My excellent 2018
  2. 【Android FFMPEG 开发】FFMPEG 获取 AVStream 音视频流 ( AVFormatContext 结构体 | 获取音视频流信息 | 获取音视频流个数 | 获取音视频流 )
  3. 图像降噪算法——图像噪声模型
  4. 怎样写出可维护的面向对象javascript(译)
  5. DigSci科学数据挖掘大赛-亚军方案分享
  6. 重磅!双腿机器人Digit v2视频流出,自主搬卸货物噪音极小
  7. 【LCT】洞穴勘测(luogu 2147/金牌导航 LCT-1)
  8. centos调整页面大小_这2种方法都能调整PDF文档的纸张大小
  9. redis 系列7 数据结构之跳跃表
  10. 通过 Telnet 在 Linux 终端中观看ASCII 星球大战
  11. Java基础0311
  12. 10 个牛逼的一行代码就能搞定的编程技巧,你会用吗?
  13. 【回归预测】基于matlab鲸鱼算法优化BP神经网络回归预测(多输入单输出)【含Matlab源码 1554期】
  14. python assert简单记忆方法
  15. EXCEL拆分单元格代码
  16. php 开发模式 自定义,smartprinter虚拟打印机 smarty+adodb+部分自定义类的php开发模式...
  17. TextFormField 去掉 下划线
  18. Character Controller角色控制器组件
  19. 京杭大运河北线疏浚穿越黄河地形UTM平面直角坐标系分析GIS模型建立
  20. Error - 52 with clEnqueueNDRangeKernel

热门文章

  1. 扩频时钟(SSC)概念以及Lattice FPGA对扩频时钟的支持
  2. QMI_CLIENT_API_译
  3. 【mongodb双响曲】:mongodb的基本使用
  4. element el-table组件修改表格表头和某个单元格背景色
  5. Vue给Input赋值
  6. 大数据分析平台有哪些应用价值
  7. 南充计算机实验小学,南充小学排名前十名榜单,2021年南充所有的小学实力排名...
  8. 职场生存指南:处理好这些关系将有助于你的升职加薪
  9. “云养车”背后,是知乎与途虎各自的“小算盘”
  10. 因为没有逻辑没有怀疑致使中国成了无学的民族(三)