计算机组成原理的学习笔记(5)--数据的表示与运算·其四 浮点数的储存和加减/内存对齐/大端小端

学习笔记

前言

本文主要是对于b站尚硅谷计算机组成原理的学习笔记,仅用于学习交流。

1. 浮点数的表示与运算
  • 规格化数

    • 浮点数的存储格式为

      ,其中:

      • 为符号位。

      • 为尾数,通常在0和1之间(规格化形式为1.xxxxx)。

      • 为指数。

  • 浮点数加减运算步骤

    1. 对齐尾数:将两个浮点数的尾数对齐,比较它们的指数,右移尾数。

    2. 执行加法或减法:

      • 加法:符号相同的尾数相加。

      • 减法:符号不同的尾数相减。

    3. 规格化结果:调整结果,必要时修改指数。

    4. 处理溢出和下溢:确保结果在表示范围内。

    5. 舍入:确保结果尽可能精确。


2. 数据存储的边界对齐
  • 边界对齐原则

    • 数据在内存中按照特定字节边界进行对齐,提高访问效率。

    • 对齐要求通常等于数据类型的大小。

      • char:1 字节

      • short:2 字节

      • int:4 字节

      • float:4 字节

      • double:8 字节

  • 结构体对齐

    • 结构体的大小通常是其最大成员对齐大小的倍数。

    • 结构体成员之间可能会引入填充字节,以满足对齐要求。

  • 示例

    struct Example {
        char a;   // 1 byte
        int b;    // 4 bytes
        char c;   // 1 byte
    };
    // 实际存储大小可能是 12 字节,包含填充字节。

  • 值得注意的是,当结构体中变量定义的顺序不同,结构体所占据的空间也会不同,具体可以看视频的讲解


3. 字节序:大端与小端
  • 小端(Little-endian)

    • 低字节存储在低地址,高字节存储在高地址。

    • 示例(0x12345678的存储顺序):

      • 地址0:78

      • 地址1:56

      • 地址2:34

      • 地址3:12

  • 大端(Big-endian)

    • 高字节存储在低地址,低字节存储在高地址。

    • 示例(0x12345678的存储顺序):

      • 地址0:12

      • 地址1:34

      • 地址2:56

      • 地址3:78

  • 计算机系统中的使用

    • 小端:多数现代计算机(如 Intel x86)使用小端字节序。

    • 大端:一些网络协议和特定计算机架构使用大端。

  • 字节序转换:在多平台或网络通信时,需注意字节序问题,确保数据正确解析。


结语

        关于数据的储存和运算的学习先暂时告一段落了,接下来就是关于存储器的知识了,另外想说一句,在我学习C语言的时候,便就了解到了关于这些知识,包括浮点数的表示,边界对齐,大端小端存储,我跟的就是鹏哥C语言在b站上的网课,他讲得很详细,为我们扩展了很多知识点,在这里推荐一下,不用买付费的,免费的就有讲到这些~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值