IEEE二进制浮点数算术标准(IEEE 754)

2023-10-28

IEEE二进制浮点数算术标准IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number)),一些特殊数值(无穷(Inf)与非数值(NaN)),以及这些数值的“浮点数运算符”;它也指明了四种数值舍入规则和五种例外状况(包括例外发生的时机与处理方式)。

IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。只有32位模式有强制要求,其他都是选择性的。大部分编程语言都有提供IEEE浮点数格式与算术,但有些将其列为非必需的。例如,IEEE 754问世之前就有的C语言,现在有包括IEEE算术,但不算作强制要求(C语言的float通常是指IEEE单精确度,而double是指双精确度)。

该标准的全称为IEEE二进制浮点数算术标准(ANSI/IEEE Std 754-1985),又称IEC 60559:1989,微处理器系统的二进制浮点数算术(本来的编号是IEC 559:1989)[1]。后来还有“与基数无关的浮点数”的“IEEE 854-1987标准”,有规定基数为2跟10的状况。现在最新标准是“ISO/IEC/IEEE FDIS 60559:2010”。

在六、七十年代,各家计算机公司的各个型号的计算机,有着千差万别的浮点数表示,却没有一个业界通用的标准。这给数据交换、计算机协同工作造成了极大不便。IEEE的浮点数专业小组于七十年代末期开始酝酿浮点数的标准。在1980年,英特尔公司就推出了单片的8087浮点数协处理器,其浮点数表示法及定义的运算具有足够的合理性、先进性,被IEEE采用作为浮点数的标准,于1985年发布。而在此前,这一标准的内容已在八十年代初期被各计算机公司广泛采用,成了事实上的业界工业标准。加州大学伯克利分校的数值计算与计算机科学教授威廉·卡韩被誉为“浮点数之父”。

浮点数剖析[编辑]

以下是该标准对浮点数格式的描述。

本文表示比特的约定[编辑]

把W个比特(bit)的数据,从内存地址低端到高端,以0到W−1编码。通常将内存地址低端的比特写在最右边,称作最低有效位(Least Significant Bit,LSB),代表最小的比特,改变时对整体数值影响最小的比特。声明这一点的必要性在于X86体系架构是小端序的数据存储。

对于十进制整数N,必要时表示为N10以与二进制的数的表示N2相区分。

对于一个数,其二进制科学计数法表示下的指数的值,下文称之为指数的实际值;而根据IEEE 754标准对指数部分的编码的值,称之为浮点数表示法指数域的编码值

整体呈现[编辑]

IEEE 754浮点数的三个域

二进制浮点数是以符号数值表示法的格式存储——最高有效位被指定为符号位(sign bit);“指数部分”,即次高有效的e个比特,存储指数部分;最后剩下的f个低有效位的比特,存储“有效数”(significand)的小数部分(在非规约形式下整数部分默认为0,其他情况下一律默认为1)。

指数偏移值[编辑]

指数偏移值(exponent bias),是指浮点数表示法中的指数域的编码值为指数的实际值加上某个固定的值,IEEE 754标准规定该固定值为2e-1 - 1[2],其中的e为存储指数的比特的长度。

以单精度浮点数为例,它的指数域是8个比特,固定偏移值是28-1 - 1 = 128−1 = 127.单精度浮点数的指数部分实际取值是从128到-127。例如指数实际值为1710,在单精度浮点数中的指数域编码值为14410,即14410 = 1710 + 12710.

采用指数的实际值加上固定的偏移值的办法表示浮点数的指数,好处是可以用长度为e个比特的无符号整数来表示所有的指数取值,这使得两个浮点数的指数大小的比较更为容易,实际上可以按照字典序比较两个浮点表示的大小。

这种移码表示的指数部分,中文称作阶码

规约形式的浮点数[编辑]

如果浮点数中指数部分的编码值在0 < exponent < 2e-1之间,且尾数部分最高有效位(即整数字)是1,那么这个浮点数将被称为规约形式的浮点数。“规约”是指用唯一确定的浮点形式去表示一个值。

由于这种表示下的尾数有一位隐含的二进制有效数字,为了与二进制科学计数法的尾数(mantissa)相区别,IEEE754称之为有效数(significant)。

非规约形式的浮点数[编辑]

如果浮点数的指数部分的编码值是0,尾数为非零,那么这个浮点数将被称为非规约形式的浮点数。IEEE 754标准规定:非规约形式的浮点数的指数偏移值比规约形式的浮点数的指数偏移值大1.例如,最小的规约形式的单精度浮点数的指数部分编码值为1,指数的实际值为-126;而非规约的单精度浮点数的指数域编码值为0,对应的指数实际值也是-126而不是-127。实际上非规约形式的浮点数仍然是有效可以使用的,只是它们的绝对值已经小于所有的规约浮点数的绝对值;即所有的非规约浮点数比规约浮点数更接近0。规约浮点数的尾数大于等于1且小于2,而非规约浮点数的尾数小于1且大于0.

除了规约浮点数,IEEE754-1985标准采用非规约浮点数,用来解决填补绝对值意义下最小规格数与零的距离。(举例说,正数下,最大的非规格数等于最小的规格数。而一个浮点数编码中,如果exponent=0,且尾数部分不为零,那么就按照非规约浮点数来解析) 非规约浮点数源于70年代末IEEE浮点数标准化专业技术委员会酝酿浮点数二进制标准时,Intel公司渐进式下溢出(gradual underflow)的力荐。当时十分流行的DEC VAX机的浮点数表示采用了突然式下溢出(abrupt underflow)。如果没有渐进式下溢出,那么0与绝对值最小的浮点数之间的距离(gap)将大于相邻的小浮点数之间的距离。例如单精度浮点数的绝对值最小的规约浮点数是{\displaystyle 1.0\times 2^{-126}}1.0\times 2^{​{-126}},它与绝对值次小的规约浮点数之间的距离为{\displaystyle 2^{-126}\times 2^{-23}=2^{-149}}2^{​{-126}}\times 2^{​{-23}}=2^{​{-149}}。如果不采用渐进式下溢出,那么绝对值最小的规约浮点数与0的距离是相邻的小浮点数之间距离的{\displaystyle 2^{23}}2^{​{23}}倍!可以说是非常突然的下溢出到0。这种情况的一种糟糕后果是:两个不等的小浮点数X与Y相减,结果将是0.训练有素的数值分析人员可能会适应这种限制情况,但对于普通的程序员就很容易陷入错误了。采用了渐进式下溢出后将不会出现这种情况。例如对于单精度浮点数,指数部分实际最小值是(-126),对应的尾数部分从{\displaystyle 1.1111\ldots 11}1.1111\ldots 11{\displaystyle 1.1111\ldots 10}1.1111\ldots 10一直到{\displaystyle 0.0000\ldots 10}0.0000\ldots 10{\displaystyle 0.0000\ldots 01}0.0000\ldots 01{\displaystyle 0.0000\ldots 00}0.0000\ldots 00相邻两小浮点数之间的距离(gap)都是{\displaystyle 2^{-126}\times 2^{-23}=2^{-149}}2^{​{-126}}\times 2^{​{-23}}=2^{​{-149}};而与0最近的浮点数(即最小的非规约数)也是{\displaystyle 2^{-126}\times 2^{-23}=2^{-149}}2^{​{-126}}\times 2^{​{-23}}=2^{​{-149}}

特殊值[编辑]

这里有三个特殊值需要指出:

  1. 如果指数是0并且尾数的小数部分是0,这个数±0(和符号位相关)
  2. 如果指数 = {\displaystyle 2^{e}-1}2^{​{e}}-1并且尾数的小数部分是0,这个数是±(同样和符号位相关)
  3. 如果指数 = {\displaystyle 2^{e}-1}2^{​{e}}-1并且尾数的小数部分非0,这个数表示为不是一个数(NaN)

以上规则,总结如下:

形式 指数 小数部分
0 0
非规约形式 0 非0
规约形式 {\displaystyle 1}1{\displaystyle 2^{e}-2}2^{e}-2 任意
无穷 {\displaystyle 2^{e}-1}2^{e}-1 0
NaN {\displaystyle 2^{e}-1}2^{e}-1 非零

32位单精度[编辑]

单精度二进制小数,使用32个比特存储。

1 8 23位长
S Exp Fraction
31 30至23
偏正值(实际的指数大小+127)
22至0位编号(从右边开始为0)

S为符号位,Exp为指数字,Fraction为有效数字。 指数部分即使用所谓的偏正值形式表示,偏正值为实际的指数大小与一个固定值(32位的情况是127)的和。采用这种方式表示的目的是简化比较。因为,指数的值可能为正也可能为负,如果采用补码表示的话,全体符号位S和Exp自身的符号位将导致不能简单的进行大小比较。正因为如此,指数部分通常采用一个无符号的正数值存储。单精度的指数部分是−126~+127加上偏移值127,指数值的大小从1~254(0和255是特殊值)。浮点小数计算时,指数值减去偏正值将是实际的指数大小。

单精度浮点数各种极值情况:

类别 正负号 实际指数 有偏移指数 指数域 尾数域 数值
0 -127 0 0000 0000 000 0000 0000 0000 0000 0000 0.0
负零 1 -127 0 0000 0000 000 0000 0000 0000 0000 0000 −0.0
1 0 0 127 0111 1111 000 0000 0000 0000 0000 0000 1.0
-1 1 0 127 0111 1111 000 0000 0000 0000 0000 0000 −1.0
最小的非规约数 * -126 0 0000 0000 000 0000 0000 0000 0000 0001 ±2−23 × 2−126 = ±2−149 ≈ ±1.4×10-45
中间大小的非规约数 * -126 0 0000 0000 100 0000 0000 0000 0000 0000 ±2−1 × 2−126 = ±2−127 ≈ ±5.88×10-39
最大的非规约数 * -126 0 0000 0000 111 1111 1111 1111 1111 1111 ±(1−2−23) × 2−126 ≈ ±1.18×10-38
最小的规约数 * -126 1 0000 0001 000 0000 0000 0000 0000 0000 ±2−126 ≈ ±1.18×10-38
最大的规约数 * 127 254 1111 1110 111 1111 1111 1111 1111 1111 ±(2−2−23) × 2127 ≈ ±3.4×1038
正无穷 0 128 255 1111 1111 000 0000 0000 0000 0000 0000 +∞
负无穷 1 128 255 1111 1111 000 0000 0000 0000 0000 0000 −∞
NaN * 128 255 1111 1111 non zero NaN
* 符号位可以为0或1 .

64位双精度[编辑]

双精度二进制小数,使用64个比特存储。

1 11 52位长
S Exp Fraction
63 62至52
偏正值(实际的指数大小+1023)
51至0位编号(从右边开始为0)

S为符号位,Exp为指数字,Fraction为有效数字。指数部分即使用所谓的偏正值形式表示,偏正值为实际的指数大小与一个固定值(64位的情况是1023)的和。采用这种方式表示的目的是简化比较。因为,指数的值可能为正也可能为负,如果采用补码表示的话,全体符号位S和Exp自身的符号位将导致不能简单的进行大小比较。正因为如此,指数部分通常采用一个无符号的正数值存储。双精度的指数部分是−1022~+1023加上1023,指数值的大小从1~2046(0(2进位全为0)和2047(2进位全为1)是特殊值)。浮点小数计算时,指数值减去偏正值将是实际的指数大小。

浮点数的比较[编辑]

浮点数基本上可以按照符号位、指数域、尾数域的顺序作字典比较。显然,所有正数大于负数;正负号相同时,指数的二进制表示法更大的其浮点数值更大。

浮点数的舍入[编辑]

任何有效数上的运算结果,通常都存放在较长的寄存器中,当结果被放回浮点格式时,必须将多出来的比特丢弃。 有多种方法可以用来运行舍入作业,实际上IEEE标准列出4种不同的方法:

  • 舍入到最接近:舍入到最接近,在一样接近的情况下偶数优先(Ties To Even,这是默认的舍入方式):会将结果舍入为最接近且可以表示的值,但是当存在两个数一样接近的时候,则取其中的偶数(在二进制中式以0结尾的)。
  • 朝+∞方向舍入:会将结果朝正无限大的方向舍入。
  • 朝-∞方向舍入:会将结果朝负无限大的方向舍入。
  • 朝0方向舍入:会将结果朝0的方向舍入。

浮点数的运算与函数[编辑]

标准运算[编辑]

下述函数必须提供:

  • 加减乘除Add, subtract, multiply, divide.在加减运算中负零与零相等 -0.0 = 0.0
  • 平方根Square root. sqrt(x) ≥ 0 (x≥0),另规定sqrt(-0.0) = -0.0
  • 浮点余数。返回值x - (round(x / y) * y).
  • 近似到最近的整数round(x).如果恰好在两个相邻整数之间,则近似到偶数。
  • 比较运算. -Inf <负的规约浮点数数<负的非规约浮点数< -0.0 = 0.0 <正的非规约浮点数<正的规约浮点数< Inf;

特殊比较: -Inf = -Inf, Inf = Inf, NaN与任何浮点数(包括自身)的比较结果都为假,即 (NaN ≠ x) = false.

建议的函数与谓词[编辑]

  • copysign(x, y)copysign(x, y)返回的值由x的不带符号的部分和y的符号组成。因此abs(x)等于copysign(x, 1.0)copysign可以对NaN正确操作,这是少有的几个可以对NaN像普通算术一样操作有效的函数之一。C99新增了copysign函数。
  • −x:从涵义上指将x的符号反转。当x是±0或者NaN时,其涵义可能不同于0-x.
  • scalb(y, N):计算y×2N(N是整数),无需再计算2N。C99中对应的函数名是scalbn.
  • logb(x):计算x = 1.a×2n(x ≠ 0, a ∈[0, 1))中的n. C99新增了logbilogb函数。
  • nextafter(x,y):沿y方向找最邻近x的可表达浮点数。比如nextafter(0, 1)得到的是最小可表达的正数。C99新增了nextafter函数。
  • finite(x):判断x是否有限,即−Inf < x < Inf. C99新增了isfinite函数。
  • isnan(x):判断x是否是一个NaN,这等价于"x ≠ x". C99新增了isnan函数。
  • x <> y:仅当x < y或者x > y时才为True,其涵义是NOT(x = y)。注意这不同于"x ≠ x"。
  • unordered(x, y):当x与y无法比较大小时为True,比如说x或者y是一个NaN. C99中对应的函数名是isunordered.
  • class(x):区分x的浮点数类属:信号NaN、静默NaN、-Inf、负的规约浮点数,负的非规约浮点数,-0.0,0.0,正的非规约浮点数,正的规约浮点数,Inf。

精度[编辑]

二进制,第一个有效数字必定是“1”,因此这个“1”并不会存储。

单精和双精浮点数的有效数字分别是有存储的23和52个位,加上最左手边没有存储的第1个位,即是24和53个位。

{\displaystyle \log 2^{24}=7.22} \log 2^{​{24}}=7.22
{\displaystyle \log 2^{53}=15.95} \log 2^{​{53}}=15.95

由以上的计算,单精和双精浮点数可以保证7位和15位十进制有效数字。


以下的C++程序,概略地展示了单精和双精浮点数的精度。

#include <iostream>

int main () {
    std::cout.precision(20);
    float a=123.45678901234567890;
    double b=123.45678901234567890;
    std::cout << a << std::endl;
    std::cout << b << std::endl;
    return 0;
}

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

IEEE二进制浮点数算术标准(IEEE 754) 的相关文章

  • curl: (1) Protocol "'http" not supported or disabled in libcurl异常

    笔者在window中安装了curl 但是在使用过程中出现了错误 xff01 curl 1 Protocol 34 39 http 34 not supported or disabled in libcurl 最后经过排查 xff0c 发现
  • curl: (1) Protocol 'http not supported or disabled in libcurl

    在windows中使用curl的时候 xff0c 命令为 curl 39 http localhost 9200 pretty 39 出现这个报错 curl 1 Protocol 39 http not supported or disab
  • SPI protocol 驱动编写 Part 1

    Linux 中 SPI 系统概览 Contents Part 1 Linux中 SPI子系统概览 Part 2 SPI message基础 Part 3 异步写 Overview SPI框架的内核文档是个好的开始 在你的内核源码中 Docu
  • org.apache.catalina.LifecycleException: Protocol handler initialization failed

    JavaWeb项目中 xff0c 在测试Tomcat时总是会报出下面的异常 xff1a org apache catalina LifecycleException Protocol handler initialization faile
  • 二进制转换

    我们平时使用的十进制 十进制转二进制 整数情况 11表示成二进制数 11 2 5 余 1 5 2 2 余 1 2 2 1 余 0 1 2 0 余 1 得0结束 11的二进制表示为 从下往上 1011 小数情况 0 9表示成二进制数 0 9
  • 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理(2.3-2.4)

    GitHub计算机系统CSAPP课程资源 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 1 2 2 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 3 2 4 计算机系统课程 笔记总结 CSAPP第三章
  • 矩阵分析——LU分解

    LU分解初步 矩阵的LU分解主要用来求解线性方程组或者计算行列式 在使用初等行变换法求解线性方程组的过程中 系数矩阵的变化情况如下 由上可知 其中U就是上面矩阵A经过行变换后的上三角矩阵 Eij表示将i行元素与j行元素互换的初等矩阵 Eij
  • IEEE二进制浮点数算术标准(IEEE 754)

    IEEE二进制浮点数算术标准 IEEE 754 是20世纪80年代以来最广泛使用的浮点数运算标准 为许多CPU与浮点运算器所采用 这个标准定义了表示浮点数的格式 包括负零 0 与反常值 denormal number 一些特殊数值 无穷 I
  • Atcoder Beginner Contest 295

    A Probably English AC代码 include
  • cisco packet tracer 做VOIP语音实验

    实验环境 操作系统 windows 10 模拟器 cisco packet tracer 7 2 1 实验拓扑如下 ROUTER0 CONF 打开DHCP为局域网中的设备分配IP地址 DHCP Option 150是思科独有的命令 用来指定
  • 异常数据剔除

    1 在SPSS中做箱型图 图中可以显示异常值 然后剔除 但问题是大数据 采用箱形图已经不显示了 2 拉依达准则法 3 简单 无需查表 测量次数较多或要求不高时用 是最常用的异常值判定与剔除准则 但当测量次数 10次时 该准则失效 如果实验数
  • C++ 之 浮点数的大小比较

    摘要 本文首先 将 介绍 浮点数 的 存储结构 以及 int 操作 含义 其次 介绍 常规 浮点数比较 方法 最后 本文 将采用 int 转换为 整型 数据 直接比较 转换为的 整形数据 的 大小 1 浮点数 的 存储结构 十进制 1 35
  • [4G&5G专题-128]:5G培训关键技术篇-1-5G的网络概述

    作者主页 https blog csdn net HiWangWenBing 本文网址 https blog csdn net HiWangWenBing article details 118459771 目录 第1部分 移动业务需求趋势
  • Linux下的dd命令

    简介 dd命令是Linux下的一个重要的磁盘操作命令 它的主要作用是备份和复制磁盘 dd的语法是 dd if 输入文件的名称 of 输出文件的名称 参数 值 if 输入文件的名称 指定输入文件的名称 可以是文件 设备 目录等 of 输出文件
  • 计算机浮点数规格化表示

    说明 在IEEE标准中 浮点数在内存中的表示是将特定长度的连续字节的所有二进制位按特定长度划分为符号域 指数域和尾数域三个连续域 float float类型在内存中占用的位数为 1 8 23 32bits double 1 11 52 64
  • ajax请求二进制流图片并渲染到html中img标签

    说明 后台返回图片二进制流 需要使用get请求获取返回结果 并且将返回的二进制流以图片形式显示在页面img中 但是日常显示图片都诸如这种形式 img src 图片路径 地址 alt 以上需求不能将后端地址直接填入src 原因是需要获取图片请
  • 逆向面试常见问题(陆续更新ing)

    资料大部分收集于网络 点击对应标题有原帖地址 PE 怎么判断PE是DLL 还是EXE 文件值属性 加载基址 怎么判断PE文件是32位还是64位 PE加载过程 基础 Windows下的调用约定 通用寄存器有哪些 段存器 怎么找到函数地址 调试
  • C++基础——简单而强大的bitset

    basis bitset 的构造 bitset的操作 一些高级用法 将Bitsets视为一组标志 一些简单的原子操作 往往能组合出复杂而强大的功能 位操作的深远意义不在于表示一种数值 而是可能的情况数 我虽然暂时不知道bitset能组合出如
  • 详解原码、反码、补码——深入理解补码

    学过计算机原理的人都知道原码 反码 补码 但是有多少人知道为什么会有这三种码呢 这三种码又是用来干嘛的呢 众所周知 在计算机的世界只有01 那么显然所有的数都得转成二进制 这样计算机才能够理解 如何将一个十进制的数转成二进制就不说了 说下原
  • 计算机中的二进制表示-4和5

    十进制 二进制 5 00000000 00000000 00000000 00000101 4 11111111 11111111 11111111 11111100 负数的二进制如何得出 相信正数的二进制表示大家都懂 但是这个 4怎么来的

随机推荐

  • windows密码获取凭证

    目录 一 Windows HASH hash windows HASH简介 二 Windows认证基础 Windows本地认证 LM HASH LM HASH简介 LM HASH生成原理 Mysql数据库密码破解 1 MYSQL数据库文件类
  • mysql程序连接驱动_Mysql驱动及其连接

    import java sql public class DB public static Connection getConn Connection conn null try Class forName com mysql jdbc D
  • 求旋转后的坐标

    坐标点target 中心点center 角度angle 旋转后坐标 function getRotatePoint targetX targetY centerX centerY angle const rotation angle Mat
  • settings.xml详解(很详细读这一篇就够了)

    目录 一 settings xml在哪里配置 有什么用 二 settings xml元素详解 2 1 LocalRepository 2 2 InteractiveMode 2 3 UsePluginRegistry 2 4 Offline
  • RT-Thread ——RTC配置

    RT Thread RTC配置 STM32F103系列芯片的RTC功能存在一些缺陷 一 显示时间戳 RTC Real Time Clock 译为实时时钟 因为它一般是集成电路 故也称为时钟芯片 它能提供精确的实时时间 可以用于产生年 月 日
  • MySQL 中视图和表的区别以及联系是什么?

    两者的区别 1 视图是已经编译好的 SQL 语句 是基于 SQL 语句的结果集的可视化的表 而表不是 2 视图没有实际的物理记录 而基本表有 3 表是内容 视图是窗口 4 表占用物理空间而视图不占用物理空间 视图只是逻辑概念的存在 表可以及
  • Codeforces Round #697 (Div. 3) C. Ball in Berland

    我的第一篇博客 XD 第一次写 小激动 一 解题思路 我一个菜鸡 看到这题 刚开始也就能想到n2算法 但肯定是过不了的 所以我又绞尽脑汁 想了一波 终于在 这题必有巧 的信念指导下 想出来了 目标是找到2个组合 让他们不冲突 那么可以显然知
  • C++学习(五十六)qt如何同时做debug和release

    CONFIG debug and release
  • Java开发 Eclipse使用技巧(转)

    1 如何设置默认的代码目录为src 默认的输出目录为bin window gt Preferences gt java gt Build Path中 右侧选择Folders就可以2 如何为快速局部变量设置getX setX属性 在代码里 g
  • node cron 动态任务调度,不同timeZone配置

    系列文章目录 前言 一 安装cron和timezone 二 创建相关db 1 定时任务开关表 2 定时任务表和运行记录表 三 相关代码实现 四 时区数据下载 五 time cron 前言 使用cron 插件实现动态任务调度 配置不同时区的定
  • C语言:猜数字游戏

    define CRT SECURE NO WARNINGS include
  • 又是一年中秋至|Python Pygame制作中秋兔子接月饼游戏【源码+解析】

    一年中秋又快到了 今年加入了Python的学习行列 得益于Python的开发效率和易读性 网上写文章的次数多了起来 既然是中秋节那肯定要搞个应景的游戏才行 左思右想没有头绪时 刚好看到一篇介绍Pygame制作飞机大战的文章 文章写的不错 文
  • MySQL常用的存储引擎

    MySQL常用的存储引擎为MyISAM InnoDB MEMORY MERGE 其中InnoDB提供事务安全表 其他存储引擎都是非事务安全表 MyISAM是MySQL的默认存储引擎 MyISAM不支持事务 也不支持外键 但其访问速度快 对事
  • 我与计算机视觉-[CUDA]-[CPU多线程下CUDA的多流]

    首先问题出在cpu下的多线程 当你想要在多个线程下调用同一个cuda核函数的时候 你会发现效率很低 那么经过验证 的确 不管你有多少个线程 cuda总是将线程中的核函数放入默认流中进行队列方式的处理 相当于单线程 但是这个问题在cuda7后
  • 华为交换机之SNMP管理

    华为交换机之SNMP管理 一 网络环境 1 网络拓扑 2 全网互通链接 二 SW2的SNMP配置 三 检查配置 一 网络环境 1 网络拓扑 2 全网互通链接 中小型局域网规划实战案例 二 SW2的SNMP配置 SW2 snmp agent
  • springboot读取yaml数组配置

    前提 我们常见的读取方式 test list TEST LIST http xxx com http ac com http cd com list2 http xxx com http ab com Configuration publi
  • 项目管理-什么是项目管理

    项目管理 简称 PM 就是项目的管理者 在有限的资源约束下 运用系统的观点 方法和理论 对项目涉及的全部工作进行有效地管理 即从项目的投资决策开始到项目结束的全过程进行计划 组织 指挥 协调 控制和评价 以实现项目的目标 项目是指一系列独特
  • Android 5.0环形电量图标,分享支持MIUI10的5种电池样式,包括:圆形、环形、数字等等!...

    原标题 分享支持MIUI10的5种电池样式 包括 圆形 环形 数字等等 MIUI为保证用户新鲜感 UI两年会大改一次 不过这个胶囊电池似乎从来没变过 从MIUI6开始到现在一直是它 相信看这么多年也烦了 这里就来分享一些我的自用主题 其中这
  • 老司机带你快速实现Python下载与安装

    目录 一 新手下载与安装Python的步骤 二 老司机下载与安装Python的步骤 先来看一下新手是怎么下载安装的 一 新手下载与安装Python的步骤 1 打开Python官网 https www python org 2 点击下载按钮
  • IEEE二进制浮点数算术标准(IEEE 754)

    IEEE二进制浮点数算术标准 IEEE 754 是20世纪80年代以来最广泛使用的浮点数运算标准 为许多CPU与浮点运算器所采用 这个标准定义了表示浮点数的格式 包括负零 0 与反常值 denormal number 一些特殊数值 无穷 I