当前位置: 首页 > news >正文

计算机组成原理2-5:C语言中的数据类型及转换

目录

计算机中的数据类型

C语言中整型变量的取值范围

C语言中数据类型转换

整形数据之间的转换

相同字长之间的转换

真题1

真题2

小字长转大字长

原数据为无符号类型,进行0扩展

原数据为有符号类型,进行符号扩展

真题1

大字长转小字长

总结

int、float、double之间的转换

float → double

double → float

float/double - int

int → float

int → double

总结


计算机中的数据类型

计算机中的数据以二进制的形式存储在寄存器或存储器中

机器怎么知道这些数据是定点数还是浮点数?

如果是定点数,是有符号数还是无符号数?

C语言中整型变量的取值范围

以char(8 位)型变量为例

无论是无符号数还是有符号数,C语言程序并不检测数据在加、减、乘等运算中产生的溢出现象

程序员应尽量避免出现这种情况,所编制的应用程序应具有对溢出进行判断的功能

C语言中数据类型转换

整形数据之间的转换

相同字长之间的转换

真题1

真题2

小字长转大字长

原数据无符号类型,进行0扩展

原数据有符号类型,进行符号扩展

真题1

大字长转小字长

一般情况下:编译器会将机器码截短处理

表示范围缩小,很可能出错

总结

int、float、double之间的转换

float → double

由于double型数据的阶码和尾数的位数都比float型大,因此其表示范围更大、精度更高,转换后的double型数据与原float型数据的值完全相等

double → float

大数转换:可能发生溢出。例如:double d=1234567890123456,float f =(float) d;

高精度数转换:发生舍入。例如:double d=1.123456789,float f =(float) d;

float/double - int

小数部分:向0方向截断

大数转换:可能发生溢出

int → float

两种类型都是32位,各自的数据组合(状态)数量相同,但二者在数轴上表示的数据并不完全重叠

由于float型浮点数的尾数包括隐藏位在内共24位,当int型数据的高8位(24~31位)数据为非0时,无

法精确转换成24位浮点数的尾数,此时发生精度溢出

int → double

double型数据的尾数包含隐藏位在内有53位,可以精确表示所有32位整数

总结

实例

http://www.dtcms.com/a/325843.html

相关文章:

  • LangChain 框架 Parser 讲解
  • LeetCode 2438.二的幂数组中查询范围内的乘积:模拟(前缀和可选)
  • 十二、Linux Shell脚本:正则表达式
  • Linux线程——线程控制及理解
  • SDRAM详细分析——01 SDRAM基础
  • MySQL 函数
  • 【PyTorch学习笔记 - 01】 Tensors(张量)
  • STM32 HAL库驱动W25QXX Flash
  • es基本概念-自学笔记
  • 嵌入式硬件中MOS管图形详解
  • Unity笔记(五)知识补充——场景切换、退出游戏、鼠标隐藏锁定、随机数、委托
  • Mini-Omni: Language Models Can Hear, Talk While Thinking in Streaming
  • 数据库的基本操作(约束与DQL查询)
  • 分治-归并-912.排序数组-力扣(LeetCode)
  • 京东科技集团寻求稳定币链上活动规划师
  • 150V降压芯片DCDC150V100V80V降压12V5V1.5A车载仪表恒压驱动H6203L惠洋科技
  • shape转换ersi json 修改增加多部件要素处理和空洞处理
  • 安卓\android程序开发之基于 Android 的校园报修系统的设计与实现
  • Android.mk教程
  • RFID系统:物联网时代的数字化管理中枢
  • 算法训练营day45 动态规划⑫ 115.不同的子序列、583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇
  • Java -- 集合 --Collection接口和常用的方法
  • (3万字详解)Linux系统学习:深入了解Linux系统开发工具
  • leetcode 15 三数之和
  • 【《数字货币量化交易:Linux下策略回测平台的搭建》】
  • 2025-2026 专升本论文写作【八项规范】
  • [202404-B]画矩形
  • 微信小程序常用 API
  • Arcpy-重采样记录
  • B站直播, 拼接4个窗口,能否实现