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

【C语言】(一)数据在计算机中的存储与表示

目录

一、存储单位(比特/字节)

二、数制/进制(二/八/十/十六)

三、码制(原码/反码/补码/移码)

四、二进制表示小数

(一)定点数

(二)浮点数 

十进制转化为浮点数


一、存储单位(比特/字节)

最小存储单位:比特  (0或1)                  

基本存储单位:字节

单位等于
 字节 (Byte/B)8 位 (bit)
千字节 (KB)1024 字节 (B)
 兆字节 (MB)1024 千字节 (KB)
 吉字节 (GB)1024 兆字节 (MB)
太字节 (TB)1024 吉字节 (GB)
拍字节 (PB)1024 太字节 (TB)

二、数制/进制(二/八/十/十六)

进制类型数字范围C语言表示方式
二进制(B)0, 10b开头
八进制(Q)0~70开头
十进制(D)0~9直接表示
十六进制(H)0~ 9     A~F0x开头

三、码制(原码/反码/补码/移码)

机器数:数在机器中的表现形式

真值:一般书写表示的数,机器数对应的原值

计算机内部只有0、1

正负?假设8位,首位:0为正,1为负

二进制数按照平时竖式直接相加发现结果不对,提出码制,解决了加减运算的缺点

类型定义备注
原码

符号位+真值的绝对值

第一位表示符号,其余位表示值。+1 = 0000 0001

正0负0,零有两种表示方式
反码正数的反码是其本身,负数的反码:原码符号位不变,其余各个位取反。正0负0,零有两种表示方式
补码正数的补码是其本身,负数的补码:反码(原码符号位不变,其余各个位取反)加10只有一种表示方式
移码补码的符号位取反

简化了比较操作的运算

用于浮点数表示

四、二进制表示小数

(一)定点数

所以在一个8位的计算机中,前5位表示一个小数的整数部分,后3位表示小数部分,小数点默认是第五位后的位置(实际上计算机不会存储小数点,只是大家这么约定)。

使用11001001表示十进制的25.125。看起来很完美,也很容易理解,但是这么表示没有其他问题吗?

问题在于:

  1. 一个8位的计算机,整数部分111111十进制最大只能表示为31 ;小数部分0.111 最大只能表示0.875,表示的数据范围太小了。
  2. 当然在16位的计算机中,可以通过增大整数部分位数表示更大的数,增大小数部分的位数可以提高小数精度。
  3. 但是这种方式对计算机来说开销非常大,所以大多数计算机并没有选择使用定点数表示小数,而是采用浮点数表示小数。

(二)浮点数 

IEEE 754标准

十进制转化为浮点数

十进制——>二进制——>科学计数法

相关文章:

  • 解决Excel文件格式损坏问题:如何通过程序读取并复制内容
  • MySQL 中的索引数量是否越多越好?
  • hot100_139. 单词拆分
  • Linux-Ansible模块进阶
  • 【我的Android进阶之旅】Android Studio SDK Update Site 国内的腾讯云镜像配置指南
  • 【Arduino小项目】控制步进电机
  • 通俗易懂的DOM1级标准介绍
  • YOLOv8与DAttention机制的融合:复杂场景下目标检测性能的增强
  • 车载诊断架构 --- LIN节点路由转发注意事项
  • 中兴G7615AV5
  • 直角三角堰计算公式
  • AutoGen 技术博客系列 八:深入剖析 Swarm—— 智能体协作的新范式
  • Linux操作系统4-进程间通信5(共享内存实现两个进程通信)
  • 【多模态处理篇二】【深度揭秘:DeepSeek视频理解之时空注意力机制解析】
  • 2025年华为手机解锁BL的方法
  • 函数指针和函数名在内存中是如何表示的
  • 计算机专业知识【揭开汇编的神秘面纱:从基础概念到实际应用】
  • VMware虚拟机手动安装VMware Tools
  • 合并区间(56)
  • [创业之路-321]:创新开拓思维和经营管理思维的比较
  • 马上评|独生子女奖励不能“私了”,政府诚信是第一诚信
  • 世界哮喘日丨张旻:哮喘的整体诊断率不足三成,吸入治疗是重要治疗手段
  • 北美票房|“雷霆”开画票房比“美队4”低,但各方都能接受
  • 贵州省黔西市发生载人游船侧翻事故
  • 张家口一景区观光魔毯疑失控致游客被甩出,涉事景区改造升级重新开园才3天
  • 俄罗斯期望乌克兰在停火期间采取行动缓和局势