ieee-754相关内容
所以我知道IEEE 754为不是实数的值指定了一些特殊的浮点值。在Java中,将这些值转换为原始 int 会不会抛出异常,像我所料想的。相反,我们有以下: int n; n =(int)Double.NaN; // n == 0 n =(int)Double.POSITIVE_INFINITY; // n == Integer.MAX_VALUE n =(int)Double.
..
根据 IEEE浮点 wikipage(在IEEE 754上),有一个总订单(即 C ++ 11 实现具有IEEE-754浮点,如Linux / x86-64上的gcc 4.8)。 当然, code>运算符
..
哇是我,我必须确保GPU和CPU上的浮点结果相同。好吧,我明白IEEE已经照顾我,并提供了一个很好的标准坚持几个舍入选项;并且CUDA部分被排序(对于不同的舍入模式有内在性),所以这只是动机。 但是在主机端C ++代码 - 我如何执行浮点运算在一个特定的舍入模式(我的意思是在一个特定的语句,而不是整个我的翻译单元)?有没有包装函数使用装配在引擎盖下?是否有一组类用于具有不同舍入模式的浮点数代
..
我有以下代码,它接受一个double值并将其转换为十六进制表示,反之亦然。我想知道是否有任何潜在的问题 - 是否我忽略了某些东西。 double hex_to_double2(string& hexString) { unsigned char byte_string [sizeof(double)]; int number; int j = 0; for(int
..
假设符合 IEEE-754 标准,是否通过双重传输保证保留浮动? 换句话说,以下断言总是会满足吗? ) { float f = some_random_float(); assert(f ==(float)(double)f); } 假设 f 可以获得IEEE定义的任何特殊值,例如NaN和Infinity。 根据IEEE,是否有一种情况,其中断言
..
我试图将浮点数转换为字符串。我知道你可以使用ostringstream& sprintf等,但在项目中,我正在工作,我试图使用自己的函数只(我创建自己的字符串类,而不使用任何外部函数)。我不想要一个完美的表示,例如。我不介意它,如果这发生大或小数字:1.0420753e + 4喜欢它与标准stringstream。 我知道浮点数如何工作例如符号,指数,尾数),以及它们如何以与它们显示的不同的
..
根据以下网站: http://en.cppreference.com/w/cpp / language / types “双精度浮点类型。通常IEEE-754 64位浮点类型”。 它说“通常”。 C ++ double 使用什么其他可能的格式/标准?什么编译器使用IEEE格式的替代?或架构? 解决方案 Vaxen,Crays和IBM大型机,仅举几例,大多数(所有?)的那些也可
..
根据以下网站: http://en.cppreference.com/w/cpp / language / types “双精度浮点类型。通常IEEE-754 64位浮点类型”。 它说“通常”。 C ++ double 使用什么其他可能的格式/标准?什么编译器使用IEEE格式的替代?或架构? 解决方案 Vaxen,Crays和IBM大型机,仅举几例,大多数(所有?)的那些也可
..
我收到一个8位十六进制数字作为IEEE 754位浮点数 ,我想打印关于该数字的信息(signbit,expbits,fractbits,normalized, denormalized,infinity,零,NAN)浮点应该是一个单一的。 我读了比特移位,我想这是我怎么想。然而,我不是100%肯定。我知道符号位是在号码的最左边的位置。表示正或负。我转移多少来找到每个?我只是继续移位它找到
..
我在寻找IEEE-754操作的参考实现。是否有这样的事情? 解决方案 我相信C库
..
请考虑以下代码,这是我的实际问题的 SSCCE : #include int roundtrip(int x) { return int(float(x)); } int main() { int a = 2147483583; int b = 2147483584; std :: cout”
..
我有以下代码,它以二进制形式将6个浮点数写入磁盘,并读取它们: #include< ; iostream> #include int main() { int numSegs = 2; int numVars = 3; float * data = new float [numSegs * numVars]; for(int i = 0
..
Google的协议缓冲区允许您在邮件中存储浮动和双打。我浏览了实现源代码,想知道他们是如何在跨平台的方式做到这一点,我偶然发现了: inline uint32 WireFormatLite :: EncodeFloat(float value){ union {float f; uint32 i;}; f = value; return i; } inline floa
..
请考虑以下C ++代码: double someZero = 0; std :: cout
..
在我的C ++程序中,我需要从外部字节序列中提取一个64位的浮点数。有没有一些方法来确保,在编译时,双精度是64位?是否还有其他类型,我应该用来存储数据? 编辑:如果你正在阅读这个和实际上寻找一种方式 解决方案 对于其他答案的改进假设一个字符是8位,标准不保证这一点。)。将是这样: char a [sizeof(double)* CHAR_BIT == 64];
..
我将一些代码从Matlab移植到C ++。 在Matlab中 format long D = 0.689655172413793(这是1.0 / 1.45) E = 2600 / D //我得到E = 3.770000000000e + 03 在C ++中 double D = 0.68965517241379315; //(这是1.0 /
..
我最近在IEEE 754和x87架构上阅读了很多。我正在考虑使用NaN作为一个“缺失值”在一些数字计算代码我正在努力,我希望使用信号 NaN将允许我捕获浮点异常在那里我不想继续“缺失值”。相反,我将使用 quiet NaN来允许“缺失值”通过计算传播。然而,信号NaNs不工作,因为我认为他们将基于(非常有限的)文件存在他们。 这里是我所知道的所有这些使用x87和VC ++): _EM_
..
这个主题在StackOverflow上出现了很多次,但我相信这是一个新的。是,我已阅读 Bruce Dawson的文章和
..
我已经看过很多文章解释浮点数可以如何存储以及如何计算这些数字的算术,但请简要解释为什么我写入 cout
..
我需要一个能够在32位和16位浮点数之间转换的跨平台库/算法。我不需要对16位数执行数学运算;我只需要减小32位浮点数的大小,以便它们可以通过网络发送。我在C ++中工作。 我明白我将失去多少精确度,但我的应用程序可以。 IEEE 16位格式很棒。 解决方案 std :: frexp 从正常浮动或双精度中提取有效数和指数 - 决定如何处理太大而不适合半精度浮点(饱和...?)的
..