首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 【C语言标准库函数】浮点数分解与构造: frexp() 和 ldexp()

    返回值的取值规律严格遵循以下规则: 若 x ≠ 0:返回值 mantissa 满足 0.5 ≤ |mantissa| < 1.0,且 mantissa 的符号与 x 一致(即与 x 同号)。 2.2 ldexp () 函数原型 #include <math.h> double ldexp(double mantissa, int exp); 参数说明: mantissa:用于构造浮点数的尾码 若 mantissa 为 NaN:返回 NaN;若 mantissa 为无穷大,返回与 mantissa 同号的无穷大。 , int exp); double ldexp(double mantissa, int exp); long double ldexpl(long double mantissa, int exp) mantissa)) return NAN; if (isinf(mantissa)) return mantissa; if (mantissa == 0.0) return 0.0;

    9010编辑于 2026-01-21
  • 《计算机组成原理》第 6 章 - 计算机的运算方法

    = self.parse_float(float_a) exp_b, mantissa_b = self.parse_float(float_b) # 对阶 if exp_a > exp_b: mantissa_b >>= (exp_a - exp_b) else: mantissa_a >>= (exp_b - exp_a) exp_a = exp_b # 尾数相加 sum_mantissa = mantissa_a + mantissa_b # 规格化 while (sum_mantissa & 0x8000) == 0: # 左规 sum_mantissa <<= 1 exp_a -= 1 while (sum_mantissa & 0x10000): # 右规 sum_mantissa

    12410编辑于 2026-01-21
  • 来自专栏嵌入式项目开发

    C语言实例_math.h库函数功能及其用法详解

    origin to point (3, 4) is %.2f\n", distance); double value = 1234.56; int exp; double mantissa = frexp(value, &exp); printf("Value = %.2f, mantissa = %.2f, exponent = %d\n", value, mantissa, integer part = 3.00, fractional part = 0.70 Distance from origin to point (3, 4) is 5.00 Value = 1234.56, mantissa

    2.7K10编辑于 2024-01-03
  • 来自专栏全栈程序员必看

    python类型转换astype时间_python dataframe astype 字段类型转换方法

    18446744073709551615) float_ Shorthand for float64. float16 Half precision float: sign bit, 5 bits exponent, 10 bits mantissa float32 Single precision float: sign bit, 8 bits exponent, 23 bits mantissa float64 Double precision float: sign bit, 11 bits exponent, 52 bits mantissa complex_ Shorthand for complex128. complex64 Complex

    96210编辑于 2022-09-05
  • 来自专栏全栈程序员必看

    16进制浮点数的表示方法

    64位 1[63] 11[52-62] 52[0-51] 1023 说明: 1位符号位(SIGN) 8位指数位(EXPONENT) 23位尾数位(MANTISSA [29]…[2][1][0] 64位二进制数的排位为:[63][62][61]…[2][1][0] 16进制转换为10进制的公式如下: SGL = (-1)^SIGN * 1.MANTISSA 01000000100000000000000000000000 (2)1位符号位(SIGN)=0 (3)8位指数位(EXPONENT)=10000001=129[10进制] (4)23位尾数位(MANTISSA

    2.1K30编辑于 2022-09-08
  • 来自专栏Golang语言社区

    golang中big包源码阅读——从RSA算法说起

    ×2exponent 其中 0.5≤mantissa≤1.0, 而且MinExp≤exponent≤MaxExp。 除此之外还包含以下三个变量: 精度(precision): 表示mantissa比特位表示值的最大值; 取值模式(mode): 表示将浮点值转换为mantissa表示时候取值模式,一般有ToNearestEven nat切片通常保存precision要求的位数,但是如果后面都是0,那么nat舍弃这些零,如果precision不是Word长度的整数倍,那么就要在mant[0]后面补上0; 如果x.mant=1,也就是mantissa =0.5,将会做一些标准化,将mantissa进行左移操作,exponent部分会右移操作。 -------- 3±0 zero sign - - 40 < |x| < +Inf finite sign mantissa

    1.3K30发布于 2018-12-19
  • 来自专栏零域Blog

    一个 printf 引发的基础复习

    IEEE-754 +---+-----+----------+ | S | Exp | Mantissa | +---+-----+----------+ S:符号位 Exp:指数偏差 Mantissa :尾数 单精度(32 位) S:1 位 Exp:8 位,二进制科学计数法中的指数加 127(2^(8-1)-1) Mantissa:23 位,二进制科学计数法中的小数部分 双精度(64 位) S:1 位 Exp:11 位,二进制科学计数法中的指数加 1023(2^(11-1)-1) Mantissa:52 位,二进制科学计数法中的小数部分

    39320编辑于 2022-03-25
  • 来自专栏闷骚的程序员

    一个 printf 引发的基础复习

    IEEE-754 +---+-----+----------+ | S | Exp | Mantissa | +---+-----+----------+ S:符号位 Exp:指数偏差 Mantissa :尾数 单精度(32 位) S:1 位 Exp:8 位,二进制科学计数法中的指数加 127(2^(8-1)-1) Mantissa:23 位,二进制科学计数法中的小数部分 双精度(64 位 ) S:1 位 Exp:11 位,二进制科学计数法中的指数加 1023(2^(11-1)-1) Mantissa:52 位,二进制科学计数法中的小数部分

    61520发布于 2020-04-16
  • 来自专栏技术派

    NumPy之:数据类型

    long Platform-defined np.half / np.float16 Half precision float: sign bit, 5 bits exponent, 10 bits mantissa np.single float Platform-defined single precision float: typically sign bit, 8 bits exponent, 23 bits mantissa np.double double Platform-defined double precision float: typically sign bit, 11 bits exponent, 52 bits mantissa

    59850发布于 2021-06-21
  • 来自专栏清晨我上码

    2-Numpy 初学

    float_ Shorthand for float64. float16 Half precision float: sign bit, 5 bits exponent, 10 bits mantissa float32 Single precision float: sign bit, 8 bits exponent, 23 bits mantissa float64 Double precision float: sign bit, 11 bits exponent, 52 bits mantissa complex_ Shorthand for complex128. complex64

    60220发布于 2020-03-20
  • 来自专栏程序那些事

    NumPy之:数据类型

    long Platform-defined np.half / np.float16 Half precision float: sign bit, 5 bits exponent, 10 bits mantissa np.single float Platform-defined single precision float: typically sign bit, 8 bits exponent, 23 bits mantissa np.double double Platform-defined double precision float: typically sign bit, 11 bits exponent, 52 bits mantissa

    79620发布于 2021-05-11
  • 来自专栏程序那些事

    NumPy之:数据类型

    long Platform-defined np.half / np.float16 Half precision float: sign bit, 5 bits exponent, 10 bits mantissa np.single float Platform-defined single precision float: typically sign bit, 8 bits exponent, 23 bits mantissa np.double double Platform-defined double precision float: typically sign bit, 11 bits exponent, 52 bits mantissa

    77750发布于 2021-04-23
  • 来自专栏葡萄城控件技术团队

    JSON数据传输大法第一式——用OADate处理日期格式

    : sheet.tag("/OADate(44542)/"); var date = sheet.tag(); 后端java环境下: long d = 44542; double mantissa = d - (long) d; double hour = mantissa*24; double min =(hour - (long)hour) * 60;

    96740编辑于 2022-05-20
  • 来自专栏咩嗒

    V8源码入门

    const int kArgumentOffset = 4 * kSystemPointerSize; MemOperand mantissa_operand(MemOperand(rsp, kArgumentOffset MemOperand return_operand = mantissa_operand; Register scratch1 = rbx; // Since we must use rcx ); __ Movsd(kScratchDoubleReg, mantissa_operand); __ movl(rcx, exponent_operand); __ andl(rcx, kMantissaBits)); __ j(below, &process_64_bits, Label::kNear); // Result is entirely in lower 32-bits of mantissa scratch1); __ popq(rcx); __ ret(0); } 看上去很像汇编(编程的思考方式按汇编来),实际上是c++函数,比如这行movl __ movl(scratch1, mantissa_operand

    1.6K21编辑于 2023-04-26
  • 来自专栏Article

    JavaScript 中 0.1 + 0.2 的精度以及数字类型的整理

    但是科学计数法中的指数是可以为负数的,所以人们约定减去一个中间数 1023,[0,1022] 表示为负,[1024,2047] 表示为正 M (Mantissa/23bits):表示有效数字,大于等于1 754 的规定,用 64 位二进制来表示数字,如果我们手动去转换一下十进制的 0.1 到二进制,1100 部分是会一直循环下去,显然如果你找一个位置阶段只取其中的一部分值的话,精度就不准确了,而 【M (Mantissa

    1K20编辑于 2022-06-15
  • 来自专栏赤道企鹅的博客

    [XCTF Final 2021] Pwn题解 - house of big, hard stack, lua

    0x80000000 end local biasedExponent = bit_rshift(bit_band(high, 0x7FF00000), 20) local mantissa 0x000FFFFF) * 4294967296 + low) / 2 ^ 52 local f if biasedExponent == 0x0000 then f = mantissa == 0 and 0 or math_ldexp(mantissa, -1022) elseif biasedExponent == 0x07FF then f = mantissa == 0 and math_huge or(math_huge - math_huge) else f = math_ldexp(1 + mantissa, biasedExponent

    64920编辑于 2022-08-01
  • 来自专栏HTML5学堂

    为什么不要在 JavaScript 中使用位操作符?

    在浮点数中,数字通常被表示为: (-1)sign × mantissa × 2exponent 而为了将尾数规格化,并做到尽量提高精确度,就需要把尾数精确在 [1,2) 的区间内,这样便可省去前导的1。 11.101 × 23 = 1.1101 × 240.1001 × 25 = 1.001 × 24 并且标准规定指数部分使用 0x3ff 作为偏移量,也就有了双精度浮点数的一般公式: (-1)sign × 1.mantissa

    1.2K100发布于 2018-03-12
  • 来自专栏信创系统开发

    专门针对 DeepSeek 的纯 C++ CPU 端推理框架

    在这种格式中,“F8”表示总共使用 8 位存储数据,而“E5M2”则说明其中有 5 位用于表示指数(Exponent),2 位用于表示尾数(Mantissa),剩下一位通常用作符号位。 具体来说,F8E4M3 表示使用 8 位总宽度,其中 1 位用于符号,4 位用于指数(Exponent),3 位用于尾数(Mantissa)。

    91710编辑于 2025-02-10
  • 来自专栏数据小冰

    Go语言中常见100问题-#19 Not understanding floating points

    sign * 2^exponent * mantissa 下图是数值1.0001(float32)在IEEE-754下的计算机表示。 所以原码的值为0,即exponent为0. mantissa的值为1.000100016593933. 因此它的十进制数为: 1 × 2^0 × 1.000100016593933.

    93320编辑于 2022-12-18
  • 来自专栏自然语言处理(NLP)论文速递

    EMNLP 2023 | 解决LLaMA、BERT等部署难题:首个4-bit浮点量化LLM来了

    以及 Floating Point Quantization 的知识,首先 Floating Point Number 可以用以下公式表示: s 代表正负符号位 (sign bit),m 代表尾数位 (mantissa p 是一个介于 0 到 2^e - 1 之间的值,用来表示当前数字该被划分到哪一个指数区间,d 取 0 或 1 的值,用来表示第 i 个 mantissa bit。

    72010编辑于 2023-11-22
领券