将浮点数转换为无符号整数,同时保留顺序

2024-01-09

我找到了很多关于 SO 的答案,专注于转换float to int.

我只处理正浮点值。 我一直在使用的一种简单方法是:

unsigned int float2ui(float arg0) {
    float f = arg0;
    unsigned int r = *(unsigned int*)&f;
    return r;
}

上面的代码运行良好,但无法保留数字顺序。 我所说的顺序是指:

  float f1 ...;
  float f2 ...;
  assert( ( (f1 >= f2) && (float2ui(f1) >= float2ui(f2)) ) ||
          ( (f1 <  f2) && (float2ui(f1) < vfloat2ui(f2)) ));

我尝试使用 union 得到相同的结果。 任何想法? 我使用 Homebrew gcc 5.3.0。


您正在使用的代码(如编写的那样)具有未定义的行为。如果您想访问的表示floats 半可移植(实现定义,定义良好,假设 IEEE 754 并且浮点和整数字节序匹配),你应该这样做:

uint32_t float2ui(float f){
    uint32_t r;
    memcpy(&r, &f, sizeof r);
    return r;
}

对于非负值,浮点值和表示之间的映射是保序的。如果您认为您看到它无法保持秩序,我们需要确切地了解您认为反例的值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将浮点数转换为无符号整数,同时保留顺序 的相关文章

  • 无法使用 strptime() 获取秒数

    我收到 YYYY MM DDThh mm ss S Z hh mm 这种格式的日期时间 我正在尝试使用复制该值strptime如下所示 struct tm time 0 char pEnd strptime datetime Y m dT
  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 关键帧不是关键帧? AV_PKT_FLAG_KEY 未解码为 AV_PICTURE_TYPE_I

    解码标志中包含 AV PKT FLAG KEY 的数据包后 我原本期望得到 I 帧 但结果却得到了 P 帧 拨打电话后 avcodec decode video2 codecCtx frame frameFinished packet mp
  • iOS 呈现动画为“推”的视图控制器(左右动画)

    目前 我有一个视图控制器呈现其他视图控制器 我想做的是重新创建推送视图控制器时使用的默认动画 我目前的做法是 FirstViewController IBAction private func push sender AnyObject l
  • 如何捕获 ASCX 控件(而不是隐藏代码)引发的异常?

    我有一个很大的 ASPX 页面 其中包含许多 ASCX 控件 如果控件引发异常 它应该记录异常并仅隐藏其自身 所有其他控件仍应呈现 如何处理从前端文件 ASCX 而不是代码隐藏 引发的各个 ASCX 的异常 例如 尝试使用以下方法引用无效属
  • 算法 CRC-12

    我正在尝试对 12 位 CRC 和算法执行 crc table 但总是得到错误的结果 你能帮助我吗 要创建 crc 表 我尝试 void crcInit void unsigned short remainder int dividend
  • 为什么我的 Perl 代码中会收到“调用得太早以检查原型”警告?

    我有一个像这样的 Perl 文件 use strict f1 sub f3 f2 sub f1 sub f2 简而言之 f1在定义之前被调用 因此 Perl 发出警告 f1 调用得太早 无法检查原型 但情况也是如此f2 唯一的区别是它是从另
  • 如何抑制整个命名空间文件的 StyleCop 警告

    我正在使用 Style Cop 版本 4 7 全局抑制并不适用于选定命名空间的每个成员 我在同一命名空间 StyleCopSample Test 中有两个文件 当我在第一个文件中设置抑制消息时 仅针对该文件抑制消息 但第二个文件仍然会收到警
  • R 裁剪栅格的无数据

    我想裁剪一些栅格的无数据部分 图像的示例1 https i stack imgur com hkr4d png其中无数据为黑色 无需手动定义范围 任何想法 您可以使用trim删除只有外部行和列NA values library raster
  • 同时是 Kotlin 成员和扩展

    为了更多地了解 Kotlin 并使用它 我正在开发一个示例 Android 应用程序 我可以在其中尝试不同的事情 然而 即使在搜索该主题一段时间后 我仍无法找到以下问题的正确答案 让我们在 View 类上声明一个 虚拟 扩展函数 fun V
  • 当我的程序出现分段错误时,即使设置了 RUST_BACKTRACE=1,为什么我也得不到回溯?

    我想查看随机分段错误的回溯 所以我设置了RUST BACKTRACE 1环境变量 通常它会打印回溯信息 但这次不打印 为什么不RUST BACKTRACE work RUST BACKTRACE 1 target debug grin mi
  • 重写 Javascript Map 的相等函数

    我想在 Javascript 中创建一个 Map 字典 其中键是数字数组 值是某个对象 我想从地图中检索以前使用相同数组内容存储的值 即 如果我有一个包含某些内容的数组 我想检索以前为具有相同内容的数组存储的值 如果有 在大多数其他语言中
  • 异步/等待和缓存

    我的服务层正在缓存大量对 memcached 的 Db 请求 这是否导致无法使用 Async Await 例如我怎么能等待这个 public virtual Store GetStoreByUsername string username
  • NSString 内部结构 - 长度如何工作?

    我有一个关于 NSString 内部结构的问题 我想检查字符串长度 基本上我想知道 NSString 是否知道它的长度 每次计数 计数并缓存结果 我应该存储它的长度并每次计算或调用长度方法吗 为了测试一个字符串 我可以测试 nil 或询问它
  • xml dom解析器在java中按名称查找标签

    我有一个 xml 我只想获取城市和温度 我尝试了以下方法 HttpParams httpParameters new BasicHttpParams HttpClient httpclient new DefaultHttpClient h
  • 在 Word2Vec 中合并预训练模型?

    我已经下载了 1000 亿字的 Google 新闻预训练矢量文件 除此之外 我还在训练自己的 3GB 数据 生成另一个预训练的矢量文件 两者都有 300 个特征维度和超过 1GB 的大小 我如何合并这两个巨大的预训练向量 或者我如何训练一个
  • C# 中的映射的映射相当于什么

    在 C 中我正在使用map
  • MVP模式(GWT)的优点是什么

    我刚刚读过本文 http code google com intl de DE webtoolkit doc latest DevGuideMvpActivitiesAndPlaces html这确实让我很困惑 其次 此模型允许我们最大限度
  • 什么是控制器类? [复制]

    这个问题在这里已经有答案了 什么是控制器类 例如 uiviewcontroller uiviewcontroller 和 uiview 有什么区别 谢谢 Cocoa 使用面向对象编程中的模型 控制器 视图概念进行工作 在此系统中 模型由存储
  • 如何获取 NameValueSectionHandler 类型的 ConfigurationSection 的值

    我正在使用 C Framework 3 5 VS 2008 我正在使用ConfigurationManager将配置 不是默认的 app config 文件 加载到 Configuration 对象中 使用 Configuration 类
  • 解析 SDK 1.7.1 无法在 Xcode 6.3 中工作

    我的代码在 Xcode 6 2 中运行良好 更新到 Xcode 6 3 后 我遇到了一些 Nullabilty 错误 下载 Parse SDK 1 7 1 后 我可以解决这些错误 所以我删除了项目中旧的 Parse 框架文件并将新的粘贴到其
  • 将浮点数转换为无符号整数,同时保留顺序

    我找到了很多关于 SO 的答案 专注于转换float to int 我只处理正浮点值 我一直在使用的一种简单方法是 unsigned int float2ui float arg0 float f arg0 unsigned int r u