0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言中位、字节和字的定义 整数类型与浮点数类型的比较

lcdz66 来源:雨飞工作室 2023-10-18 15:03 次阅读

一、位、字节和字

术语位、字节和字用于描述计算机数据单位或计算机存储单位。这里主要指存储单位。

最小的存储单位称为位(bit)。它可以容纳两个值(0或1)之一(或者可以称该位被置为“关”或“开”),不能在一个位中存储更多的信息,但是计算机中包含数量极其众多的位。位是计算机存储的基本单位。

字节(byte)是常用的计算机存储单位。几乎对于所有的机器,1个字节均为8位。这是字节的标准定义,至少在衡量存储单位时是这样(C语言中对此有不同的定义)。由于每个位或者是0或者是1,所以一个8位的字节包含256(2的8次方)种可能的0、1组合。这些组合可用于表示0到255的整数或者一组字符。这种表示可以通过二进制编码(仅使用0或1方便地表示数字)来实现。

对于一种给定的计算机设计,字(word)是自然的存储单位。对于8位微机,比如原始的Apple机,一个字正好有8位。使用80286处理器的早期IBM兼容机是16位机,这意味着一个字的大小为16位。基于Pentium的PC机和Macintosh PowerPC中的字是32位。现在普遍的计算机是64位,但更强大的计算机还可以有更长位数的字。

二、整数类型与浮点数类型

对于人,整数和浮点数的区别在于它们的书写。对于计算机,区别在于它们的存储方式。下面分别对它们进行介绍。

1、整数

整数(integer)就是没有小数部分的数。在C中,小数点永远不会出现在整数的书写中。例如1、-23和4561都是整数。数3.14、0.77和8.000都不是整数。整数以二进制数字存储。例如整数9的二进制表示为1001,在8位的字节中存储它需要将前4位置0,后4位为1001,即00001001。

2、浮点数

浮点数(floating-point)差不多可以和数学中的实数(real number)概念相对应。实数包含了整数之间的那些数。1.75、2.16E7、3.00和4e-8都是浮点数。注意,加了小数点的数是浮点型值,所以3是整数类型,而3.00是浮点型。书写浮点数有多种形式。2.16E7表示2.16乘以10的7次方(即1后面带有7个0),7称为10的指数。

这里最重要的一点是浮点数与整数的存储方案不同。浮点数表示法将一个数分为小数部分和指数部分并分别存储。因此尽管7.00和整数7有相同的值,但它们的存储方式不同。与机器中的二进制存储方式相似,在十进制中5.0可表示为0.5E1,这里的0.5是小数部分,1是指数部分。当然,计算机的内部存储使用二进制数字,它使用2的幂而非10的幂。

这里我们先只关注这两种类型在应用中的区别:

①整数没有小数部分;浮点数可以有小数部分

②浮点数可以表示比整数范围大得多的数

③对于一些算术运算(例如两个很大的数相减),使用浮点数会损失更多的精度

④因为在任何区间内(比如1.0和2.0之间)都存在无穷多个实数,所以计算机浮点数不能表示区域内所有的值。浮点数往往只是实际值的近似。例如,7.0可能以浮点值6.99999存储。

⑤浮点运算通常比整数运算慢。不过,已经开发出了专门处理浮点运算的微处理器,它可以缩小速度上的差别。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7440

    浏览量

    87785
  • 微处理器
    +关注

    关注

    11

    文章

    2249

    浏览量

    82353
  • C语言
    +关注

    关注

    180

    文章

    7602

    浏览量

    136358
  • 浮点数
    +关注

    关注

    0

    文章

    60

    浏览量

    15864

原文标题:C语言中位、字节和字以及整数类型与浮点数类型的比较

文章出处:【微信号:雨飞工作室,微信公众号:雨飞工作室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    小数在内存中是如何存储的?为什么C语言中浮点数不支持位移操作?

    小数在内存中是如何存储的?为什么C语言中浮点数不支持位移操作?
    发表于 08-16 09:24 1021次阅读
    小数在内存中是如何存储的?为什么<b class='flag-5'>C</b><b class='flag-5'>语言中</b>的<b class='flag-5'>浮点数</b>不支持位移操作?

    跟着狄泰唐老师学C语言进阶教程的笔记之浮点数的秘密

    1. 内存中的浮点数l 浮点数在内存的存储方式为:符号,指数,尾数l float与double 类型的数据在计算机内部的表示法是相同的,但是由于所占用的存储空间的不同,其分别能够表示
    发表于 05-19 11:08

    将四字节16进制数转化为浮点数

    0401仪表的测量值:相应表明读取的测量值为42C3999A(浮点数为97.8)方法1:这是我之前从网上找到的方法,可以看到求解过程比较繁琐。第一步:将十六进制数值转变为正常显示,不按照字节
    发表于 12-01 06:13

    c语言中double与float的区别 相关资料分享

    c语言中double与float的区别C语言中小数的数据类型为 float 或 double:float 称为单精度
    发表于 07-01 09:10

    C语言怎么输入float的变量,c语言float怎么用

    是什么意思C语言中float浮点型数据类型,FLOAT数据类型用于存储单精度浮点数或双精度
    发表于 03-29 10:36

    C语言中,如何分配浮点数的存储方式?

    C语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,fl
    的头像 发表于 08-28 16:32 8182次阅读

    MSC-51单片机的3字节和4字节浮点数计算程序分析

    MSC-51 3字节和4字节浮点数计算程序,主要用于数据采集及上传,经过IEEE转换,在上位机直接显示。 ;这是本人使用的MSC-51 3字节和4
    发表于 11-14 16:12 4276次阅读
    MSC-51单片机的3<b class='flag-5'>字节</b>和4<b class='flag-5'>字节</b><b class='flag-5'>浮点数</b>计算程序分析

    python整数浮点数分解

    2.3 python整数浮点数 Python 支持的数字类型有三种:整数浮点数和复数。 1. 整数
    的头像 发表于 02-18 09:09 1855次阅读

    C语言-基本数据类型运算

    这篇文章作为基础知识点,总结C语言的基本数据类型有哪些,浮点数的精度,整数变量的空间范围,变量定义
    的头像 发表于 08-14 09:56 1554次阅读

    什么是浮点数

    Python数据类型第一种:字符串(str)。 Python数据类型第二种:整数(int)。 Python数据类型第三种:浮点数
    的头像 发表于 02-23 14:58 4549次阅读

    解析python整数浮点数不同进制整数

    python数字包括整数浮点数、复数、有理分数等,整数还可以用不同进制表示。
    的头像 发表于 03-10 10:01 1040次阅读

    PLC数据类型

    基本数据类型       基本数据类型    包括序列、整数浮点数、日期时间。(常见的)
    发表于 04-17 15:49 0次下载
    PLC数据<b class='flag-5'>类型</b>

    C语言里的整数数据类型

    1. 整型数据类型 C语言里面的整数数据类型 类型名称 C
    的头像 发表于 11-24 16:09 941次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>里的<b class='flag-5'>整数数据类型</b>

    modbus浮点数怎么读取

    Modbus是一种通信协议,常用于工业自动化系统中的设备之间的通信。它支持多种数据类型,包括整数浮点数、字符串等。浮点数在工业领域中广泛应用,因此了解如何读取和处理Modbus
    的头像 发表于 12-28 14:38 5954次阅读

    快速掌握C语言关键

    C语言中的32个关键你知道多少个呢?根据关键的作用分为四类:数据类型关键、控制语句关键
    的头像 发表于 07-06 08:04 310次阅读
    快速掌握<b class='flag-5'>C</b><b class='flag-5'>语言</b>关键<b class='flag-5'>字</b>