草庐IT

double_bits

全部标签

c++ - C++ 中的 float 转换实际上是如何完成的?( double 到 float 或 float 到 double )

所以我搜索了这个主题,但没有找到真正相关的内容。我试图查看这个简单代码背后的程序集:intmain(intargc,char*argv[]){doubled=1.0;floatf=static_cast(d);system("PAUSE");return0;}这是(使用VisualStudio2012):15:doubled=1.0;000000013FD7C16Dmovsdxmm0,mmwordptr[__real@3ff0000000000000(013FD91AB0h)]000000013FD7C175movsdmmwordptr[d],xmm016:floatf=static_

c++ - 为什么列表初始化允许从 double 值转换为浮点值?

列表初始化({...}语法)不允许缩小转换。例如,尝试使用3.14f列表初始化inti会出现编译错误,因为从浮点值到整数的转换正在缩小::11:32:error:narrowingconversionof'3.1400001e+0f'from'float'to'int'inside{}[-Wnarrowing]inti{3.14f};^话虽如此,为什么可以用3.14构造一个double类型的floatf?(从double到float的转换被认为是缩小的。)执行以下操作:floatf{3.14};没有编译错误。 最佳答案 在被认为是缩

c++ - 如何在 C++ double 或 int 变量中存储某种 "null"?

我有一个看起来像这样的类structA{doublea1;intb1;doublea2;intb2;};我必须读取a1、b1、a2和b2的文件值。大多数时候所有四个数字都在文件上,但有时只有两个数字。当有两个数字时,我想将值存储在a1和b1中,而我想在a2中存储“无”>和b2。如果a2和b2是指针,我可以将它们指定为nullptr,但它们不是指针。我可以在double和int变量中存储一些东西来指示没有存储什么吗?我知道Boost.Optional可用,但我试图避免使用该库。 最佳答案 您可以将NAN分配给双a2,这也表明intb2

c++ - 如何计算 C++ 中 double vector 的累积和?

我有一个doublevector,我需要创建另一个数组,它是第一个元素的累加和。例如;vectorArray(10,1);vectorSum(10);Sum[0]=Array[0];for(unsignedinti=1;i是否有一个内置函数可以执行上述累加和? 最佳答案 未经测试,类似std::partial_sum(Array.begin(),Array.end(),Sum.begin(),plus());如果是C++,应该可以解决问题。(其实plus()可以默认出来,itseems。)

c++ - 如何在类的头文件中定义一个 const double?

在我的类的头文件中,我正在尝试以下操作并收到编译器投诉:private:staticconstdoublesome_double=1.0;您应该如何实际执行此操作? 最佳答案 在C++11中,由于constexpr,您可以拥有非整数常量表达式:private:staticconstexprdoublesome_double=1.0; 关于c++-如何在类的头文件中定义一个constdouble?,我们在StackOverflow上找到一个类似的问题: http

python - Win 64bit GetThreadContext 返回 zeroe'd out 寄存器,或 0x57 错误代码

我在Windows764位机器上工作(我有管理员权限)。我正在使用Python2.7(64位)和Eclipse的PyDevctypes来尝试读取与特定PID关联的所有线程中的寄存器值(尝试了以64位和32位模式运行的进程的PID),但是当我这样做时,寄存器的值都被清零了。当我使用Wow64GetThreadContext时,调用失败,GetLastError返回0x00000057(根据MSDN,“无效参数”)我成功附加到进程,枚举线程(通过CreateToolhelp32Snapshot),找到具有适当PID的进程所拥有的线程,并尝试获取线程上下文。这是我打开线程并获取线程上下文的代

c++ - 为什么 INTEGRAL_MAX_BITS 会返回小于 64 的值?

我正在尝试弄清楚Windows宏_INTEGRAL_MAX_BITS的预期值。MSDN的__int64documentation说只要使用__int64就应该使用这段代码#ifdefined(_INTEGRAL_MAX_BITS)&&\_INTEGRAL_MAX_BITS>=64typedefsigned__int64int64;typedefunsigned__int64uint64;#else#error__int64typenotsupported#endif为什么我会看到INTEGRAL_MAX_BITS的值低于32?thisquestion中的答案显示在32位Windows上

c++ - 澄清 : Porting 32 to 64 bit

引自http://msdn.microsoft.com/en-us/library/windows/desktop/aa384242%28v=vs.85%29.aspxUseUINT_PTRandINT_PTRwhereappropriate(andifyouareuncertainwhethertheyarerequired,thereisnoharminusingthemjustincase).DonotcastyourpointerstothetypesULONG,LONG,INT,UINT,orDWORD.我可以安全地假设在现有32位代码行中将所有引用的DWORD转换为UNIT

windows - CMD/windows 批处理 : how to pass a double quote and a larger than sign in a command argument?

我可以通过多种方式将双引号和大于号传递给任何命令:'"'、"\""、">"但是当我尝试将它们一起传递时C:\>echo"\">"Thesystemcannotfindthepathspecified.与"\"\>"相同。我可以使用单引号使其工作,但由于我已经处理了很多引号,所以我想保留所有内容双引号内。有什么办法可以避免吗?我在windows7上,但我相信这是一些向后兼容性“功能”,所以不确定此信息是否相关。编辑1:我认为Endoro的答案是正确的……但这并没有那么简单。CMD对^>的处理方式不同,具体取决于字符串中是否存在转义双引号。任何人都知道为什么?还是不同的转义方法?C:\>s

c++ - 在 64 位 Windows 7 (msys2/mingw64) 上构建 GMP 6.1.0 : configure fails due to mp_limb_t is not 64 bits

我尝试在我的Windows764位计算机上构建GMP,因此我运行config.guess并获取k10-pc-msys。(我用的是msys2和mingw64)然后我跑了./configure--prefix=/c/gmp-6.1.0--build=k10-pc-msys--enable-cxx但是这个错误退出了checkingsizeofmp_limb_t...4configure:error:Oops,mp_limb_tis32bits,buttheassemblercodeinthisconfigurationexpects64bits.因此,我再次使用附加的ABI=64运行配置(想