2402d,d的real大小

原文

为什么在x86系统上,real.sizeof==16!
它的IEEE754扩展格式:64位尾数+15位指数+符号.

它应该是10字节!

我意思是,可能对齐不同,但为什么即使在数组中,也浪费这么多内存?

根据语言规范,real是"可用的最大浮点大小".即在某些系统上,它是IEEE754128四精度浮点数,而不是x8780扩展精度浮点数.

编译以下测试程序来验证它:

pragma(msg, "real is ", cast(int) real.sizeof*8, " bits");
pragma(msg, "real has a ", real.mant_dig, "-bit mantissa");

在注意本电脑(Linux,x86_64)上,使用dmd-c编译此程序,打印出:

`real`是`128`位
`Real`有`64`位尾数

填充.
x86ABI更喜欢对齐的东西,所以在x86上它是12字节,在x86_64上面是16字节.在这两个时候,你都不会获得x87为你提供80位的额外精度.

这正是我的意思.ABI可能会填充它,但sizeof仍应提供实际使用的(不计算间隙)字节数.

或是否可改变基本类型的对齐?
代码中,我想根据大小决定处理器是使用双倍扩展还是按实数四倍扩展.

但现在我知道不能依赖它.幸好,有提供了正确信息的mant_dig.

至少在实数数组中,与在布尔数组中一样(奇数长度除外),我期望没有填充.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/671130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java Character源码剖析

Character类除了封装了一个char外,还封装了Unicode字符级别的各种操作,是Java文本处理的基础。下面结合源码分析Character的贡献。 Unicode 也许你没听过Unicode,但应该见过UTF-8。UTF-8(8-bit Unicode Transformation Format&a…

Linux的进程信号

注意:首先需要提醒一个事情,本节提及的进程信号和下节的信号量没有任何关系,请您区分对待。 1.信号概念 1.1.生活中的信号 我们在生活中通过体验现实,记忆了一些信号和对应的处理动作,这意味着信号有以下相关的特点&…

Linux定时监测数据库服务若掉了则启动数据库服务

Linux定时监测数据库服务若掉了则启动数据库服务 环境介绍环境介绍 在某些生产环境,业务系统抛异常报错,排查发现数据库连接异常,查看数据库服务已经关闭;人工定位问题解决问题需要较长时间;到人工启动数据库期间,业务系统一直处于故障状态,无法访问;配置Linux定时任务,判断数据…

ROS笔记二:launch

目录 launch node标签 参数 参数服务器 节点分组 launch launch文件是一种可以可实现多节点启动和参数配置的xml文件,launch文件用于启动和配置ROS节点、参数和其他相关组件。launch文件通常使用XML格式编写,其主要目的是方便地启动ROS节点和设置节点之间的连…

寒假刷题第21天

PTA甲级 1174 Left-View of Binary Tree #include<iostream> #include<vector> #include<algorithm> #include<unordered_map>using namespace std;const int N 1e5 10; int pre[N] , in[N] , idx[N] , l[N] , r[N]; int n , max_dep 0; unordere…

72.是否可以把所有Bean都通过Spring容器来管理?(Spring的applicationContext.xml中配置全局扫 描)

一、是否可以把所有Bean都通过Spring容器来管理&#xff1f;&#xff08;Spring的applicationContext.xml中配置全局扫描) 不可以&#xff0c;这样会导致我们请求接口的时候产生404。 如果所有的Bean都交给父容器&#xff0c;SpringMVC在初始化HandlerMethods的时 候&#xff…

Vue3 中的各种ref

年前搞了一个V3的需求&#xff0c;里面涉及了一些各种ref的使用&#xff0c;今天顺便总结下V3中ref家族。 ref家族 ref()toReftoRefsisRef()unref()shallowReftriggerRefcustomRef总结 ref() 大家对于 ref 这个 API 肯定都不陌生。在 Vue3 中经常会用到它。它的作用是接收一个…

Kuberntes权威指南

一、目录 二、Kubernetes入门 三、Kubernetes核心原理 四、Kubernetes开发指南 五、Kubernetes运维指南 六、Kubernetes高级案例进阶 七、Kubernetes源码导读

20240206三次握手四次挥手

TCP和UDP异同点 相同点&#xff1a;同属于传输层的协议 不同点&#xff1a; TCP ----> 稳定 1> 提供面向连接的&#xff0c;可靠的数据传输服务 2> 传输过程中&#xff0c;数据无误、数据无丢失、数据无失序、数据无重复 1、TCP会给每个数据包编上编号&#xff…

收藏:数据要素、数据资源、数据资产、数字资产的区别

01 什么是数据要素&#xff1f; 《中共中央关于坚持和完善中国特色社会主义制度推进国家治理体系和治理能力现代化若干重大的决议》&#xff08;2019&#xff09;首次将数据列为生产要素。 《关于构建更加完善的要素市场化配置体制机制的意见》&#xff08;2020.3&#xff09…

【Android-Gradle】多模块开发中,定义额外属性(全局变量),穿梭在不同的Gradle文件中(kotlin脚本版)

其他信息可以参考官网&#xff1a;https://docs.gradle.org/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html#org.gradle.api.plugins.ExtraPropertiesExtension 但是本文讲一些简单应用&#xff1a; 需求1&#xff1a;根目录gradle文件定义一个全局变量 …

分享71个节日PPT,总有一款适合您

分享71个节日PPT&#xff0c;总有一款适合您 71个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1v4_fHplsf_hOJQbNPVUudg?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

区块链金融科技:技术融合与挑战应对【文末送书-16】

文章目录 前言一.区块链与金融科技的融合&#xff1a;革新金融格局的技术之光1.1区块链技术简介1.2 区块链在金融科技中的应用 二.智能合约2.1 去中心化金融&#xff08;DeFi&#xff09;2.2区块链对金融科技的影响2.3数据安全性 三.区块链与金融科技【文末送书-16】3.1 粉丝福…

leetcode 算法 67.二进制求和(python版)

需求 给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 示例 1&#xff1a; 输入:a “11”, b “1” 输出&#xff1a;“100” 示例 2&#xff1a; 输入&#xff1a;a “1010”, b “1011” 输出&#xff1a;“10101” 代码 class Solution…

如何区分流量控制和拥塞控制?

流量控制属于通信双方协商&#xff1b;拥塞控制涉及通信链路全局。 流量控制需要通信双方各维护一个发送窗、一个接收窗&#xff0c;对任意一方&#xff0c;接收窗大小由自身决定&#xff0c;发送窗大小由接收方响应的TCP报文段中窗口值确定&#xff1b;拥塞控制的拥塞窗口大小…

安全SCDN有什么作用

当前网络安全形势日益严峻&#xff0c;网络攻击事件频发&#xff0c;攻击手段不断升级&#xff0c;给企业和个人带来了严重的安全威胁。在这种背景下&#xff0c;安全SCDN作为一种网络安全解决方案&#xff0c;受到了广泛的关注。那么&#xff0c;安全SCDN真的可以应对网络攻击…

【leetcode题解C++】77.组合 and 216.组合总和III and 17.电话号码的字母组合

77. 组合 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ] 示例 2&#xff1a; 输入&#xff1a…

在 CentOS 7上使用 Apache 和 mod_wsgi 部署 Django 应用的方法

简介 Django 是一个强大的 Web 框架&#xff0c;可以帮助您快速启动 Python 应用程序或网站。Django 包括一个简化的开发服务器&#xff0c;用于在本地测试代码&#xff0c;但对于任何与生产相关的事情&#xff0c;都需要一个更安全和功能强大的 Web 服务器。 在本指南中&…

【Vitis】基于C++函数开发组件的步骤

目录 基本步骤 关键领域 • 硬件接口&#xff1a; 任务级并行度&#xff1a; 存储器架构&#xff1a; 微观级别的最优化&#xff1a; 基本步骤 1. 基于 设计原则 建立算法架构。 2. &#xff08;C 语言仿真&#xff09; 利用 C/C 语言测试激励文件验证 C/C 代码的逻辑。…

Vue 3D轮播插件vue-carousel-3d(禁止滑动方法)

video 1.安装 npm install -S vue-carousel-3d2.在main.js全局引入&#xff1a; import Carousel3d from vue-carousel-3d; Vue.use(Carousel3d);3.或者直接在使用页面引入省略了上一步 import { Carousel3d, Slide } from vue-carousel-3d components: {Carousel3d,Slide },…