深入理解计算机系统 家庭作业 2.84

这题没有这个要求`所以可以用 ? > : < 这种运算

以下代码用的是位级运算.因为我误解了题意 呜呜呜 想看用判断的代码请自行百度

((((ux<<9>>9)<<((ux<<1>>24)-127)) ((uy<<9>>9)<<((uy<<1>>24)-127)))>>31);

原理是IEEE754,我解释一下这行代码:

(ux<<9>>9)是x的尾数Mx 

((ux<<1>>24)-127))是x的e-Bias 也就是阶码Ex

Mx<<Ex就是M*2^{E} 

ux和uy这两个值的M*2^{E} 相减 得到的差值再右移31位得到符号(得到result),也就是差值的正负

此时ux和uy如果是正数,就返回result,如果是负数,就返回!result 

严格来说是符合题意的,因为result里面只用到了ux uy 

#include <stdio.h>int float_le(float x,float y);
unsigned f2u(float x) ;int main() 
{printf("result = %d\n",float_le(1.1,2.2));printf("result = %d\n",float_le(3.1,2.2));printf("result = %d\n",float_le(-1.1,-1.2));return 0;
}int float_le(float x,float y) 
{unsigned ux = f2u(x) ;unsigned uy = f2u(y) ;unsigned sx = ux >> 31 ;unsigned sy = uy >> 31 ;printf("ux = %x\n",ux);printf("expx = %x\n",(ux<<1>>24));printf("expx-127 = %d\n",(ux<<1>>24)-127);printf("Mx = %x\n",(ux<<9>>9));printf("expx*mx = %x\n",((ux<<9>>9)<<((ux<<1>>24)-127)));printf("uy = %x\n",uy);printf("expx = %x\n",(uy<<1>>24));printf("expy-127 = %d\n",(uy<<1>>24)-127);printf("My = %x\n",(uy<<9>>9));printf("expy*my = %x\n",((uy<<9>>9)<<((uy<<1>>24)-127)));int result=((((ux<<9>>9)<<((ux<<1>>24)-127))-((uy<<9>>9)<<((uy<<1>>24)-127)))>>31);return (ux==uy)||(sx==1&&sy==0)||(sx==0&&sy==0&&!result)||(sx==1&&sy==1&&!result);
}unsigned f2u(float x) 
{return *(unsigned *)&x;
}

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

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

相关文章

如何利用FLUENT计算流体力学方法解决大气与环境领域流动问题

ANSYS FLUENT是目前全球领先的商用CFD 软件&#xff0c;市场占有率达70%左右&#xff0c;是工程师和研究者不可多得的有力工具。由于采用了多种求解方法和多重网格加速收敛技术&#xff0c;因而FLUENT能达到最佳的收敛速度和求解精度。灵活的非结构化网格和基于解的自适应网格技…

学习网安(21)

第20章存在疑问&#xff0c;待开学后和老师求证改动后发布 中间件之一——apache 先说一下http协议——超文本传输协议 全称为&#xff1a;Hyper Text Transfor Protocol 用途&#xff1a;让用户通过浏览器发送请求到服务器端&#xff0c;接收客户端返回的数据&#xff0c;…

SRS 实时视频服务器搭建及使用

一、SRS 介绍 SRS是一个开源的&#xff08;MIT协议&#xff09;简单高效的实时视频服务器&#xff0c;支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等协议。 SRS媒体服务器和FFmpeg、OBS、VLC、 WebRTC等客户端配合使用&#xff0c;提供流的接收和分发的能力&am…

独角数卡对接支付卡跳转问题解决方法

问题描述 最近在用独角数卡搭建了一个测试版的商店程序&#xff0c;结果却在对接易支付的过程中出现了卡跳转的问题&#xff0c;支付能正常完成&#xff0c;订单发卡也正常&#xff0c;就是会卡在这个弹窗页面无法正常跳转至订单查看页面。 本来这种BUG无关痛痒&#xff0c;但…

C++之函数提高(HM)

目录 1.函数默认参数&#xff08;缺省参数&#xff09; 2.占位参数 3.函数重载 4.类和对象--封装 &#xff08;1&#xff09;圆类&#xff1a; &#xff08;2&#xff09;访问权限 &#xff08;3&#xff09;struct&&class &#xff08;4&#xff09;立方体类的…

LeetCode 494. 目标和

解题思路 相关代码 class Solution {public int findTargetSumWays(int[] nums, int target) {int f[][] new int[30][2010];int offset 1000;//因为target>-1000&&target<1000,所以需要一个偏移量//f[0][0] -> f[0][0offset]1;f[0][0offset] 1;//由于存在…

Linux课程____LVM(逻辑卷管理器)

LVM 技术是在硬盘分区和文件系统之间添加了一个逻辑层&#xff0c;它提供了一个抽象的卷组&#xff0c;可以把多块硬盘进行卷组合并。 这样一来&#xff0c;用户不必关心物理硬盘设备的底层架构和布局&#xff0c;就可以实现对硬盘分区的动态调整。 动态调整磁盘容量&#xff…

Vue3【进阶】

简介 https://cn.vuejs.org/guide/introduction.html 创建vue3工程 【基于 vue-cli创建】 基本和vue-cli的过程类似&#xff0c;只是选择的时候用vue3创建 【基于vite创建】【推荐】 【官网】https://vitejs.cn/ 【可以先去学一下webpack】 步骤 【https://cn.vitejs.…

OCDS(on chip debug support)之STM

1. 问题&#xff1a; 在使用劳得巴赫调试TC397过程中&#xff0c;发现劳得巴赫break后&#xff0c;再次运行&#xff0c;task中的计数器不再增加&#xff0c;OS不再调度&#xff0c;并且会进入ERROR hook&#xff0c;error类型为OS_LIMITED 2. 排查 2.1 ErrorHook中的Error4&…

Docker Desktop 不支持 host 网络模式

先把这个结论的放在前面&#xff0c;直接访问链接就能看到官方文档中已经明确说了不支持。 参考链接&#xff1a;docker desktop for windows 不支持 host 网络模式 以前对于 docker 的网络模式&#xff0c;一直只是了解&#xff0c;没有亲自尝试过。结果今天在尝试 docker 的 …

PostgreSQL 文章下架 与 热更新和填充可以提升数据库性能

开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;&#xff08;…

从多模态生物图数据中学习Gene的编码-MuSeGNN

由于数据的异质性&#xff0c;在不同的生物医学背景下发现具有相似功能的基因对基因表示学习提出了重大挑战。在本研究中&#xff0c;作者通过引入一种称为多模态相似性学习图神经网络的新模型来解决这个问题&#xff0c;该模型结合了多模态机器学习和深度图神经网络&#xff0…