0的0次方
0的0次方(),寫作0^0,是極限的不定式之一,在排列組合以及群論中,常用的慣例是定義為1,在微積分中則通常沒有定義,因為極限\lim_{(x,y) \to (0,0)}x^y不存在。而在不同的程式語言中,0^0的表達式也並不相同,如C++將0^0定義為1。 離散指數 許多涉及自然數指數的常用公式中必須將0^0定義為1;例如,下列三個關於b^0的解釋使b=0的意義與正整數b相同: 將b^0解釋為空乘積 將b^0組合解釋為b元素集合中元素…
共 45 篇文章
0的0次方(),寫作0^0,是極限的不定式之一,在排列組合以及群論中,常用的慣例是定義為1,在微積分中則通常沒有定義,因為極限\lim_{(x,y) \to (0,0)}x^y不存在。而在不同的程式語言中,0^0的表達式也並不相同,如C++將0^0定義為1。 離散指數 許多涉及自然數指數的常用公式中必須將0^0定義為1;例如,下列三個關於b^0的解釋使b=0的意義與正整數b相同: 將b^0解釋為空乘積 將b^0組合解釋為b元素集合中元素…
次正規範數()是非規範數的子集合,用於填滿浮點數運算中零附近的下溢間隙。任何小於最小的非零數都是次正規範數,而非規範數也可以指該範圍之外的數。 以雙精度浮點數來說,次正規範數的範圍(取絕對值)為2-1074到2-1022。 術語 在一些較舊的文檔中(尤其是標準文檔,例如IEEE 754的初始版本和C語言),「非規範數」專指次正規範數。這種用法在各種標準文件中仍然存在,尤其是在討論無法表示任何其他非規範數的硬體時,討論會使用「次正規範數」…
在電腦中,定点数()是指用固定整數位數表達分數的格式,屬於实数数据类型中一種。例如美元常會表示到二位小數,以分來表示,即為一種定点数。有時定点数也會要求要有固定的整數位數。定点数与更复杂的浮点数相对。 在定点数表示法中,小數部份和整數部份一樣,也會表示為進制底数b的幂次,不過是以負數幂次來表示。最常見的定点数表示法是十进制(底数為10)和二进制(底数為2)。若儲存了n位的小數,其數值一定是b−n的整數倍。定点数表示法也會用來省略整數中較…
NaN(,非数),是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用。首次引入NaN的是1985年的IEEE 754浮点数标准。 浮点数 在浮点数运算中,NaN与无穷大的概念不同,尽管两者均是以浮点数表示实数时的特殊值。无效操作()同样也不同于算術溢出(可能返回无穷大)和算术下溢出(可能返回最小的一般数值、特殊数值、零等)。 IEEE 754-1985中,用指数部分全为1、小数部分非零表示NaN。以32位…
单精度浮点数()是用来表示浮点数的一种数据类型,在计算机中占据32比特(4字节)大小,因此也称为float32或FP32。在IEEE 754中这种32位二进制格式被正式称为binary32格式,而在IEEE 754-1985中被称为single,即单精度。 利用“浮点”(浮动小数点)的方法,浮点数可以表示一个范围很大的数值。需要注意的是,在更早的一些计算机系统中,也存在着其他4字节的浮点数格式。 定義 第1位表示正负,中間8位表示指数,…
半精度浮点数()是用来表示浮点数的一种数据类型,在计算机中占据16比特(2字节)大小,因此也称为float16或FP16。在IEEE 754中这种16位二进制格式被正式称为binary16格式,因为只有單精度浮點數的一半大小,也简称为half,即半精度。这种数据类型适合对精度要求不高的场景,例如图像处理和人工神经网络等领域。 半精度浮点数可在OpenEXR, JPEG XR, OpenGL, Cg语言、D3DX等计算机图形环境中使用。其…
零旗標(zero flag)是表示其資料是否為零的暫存器旗標,常見的簡稱是Z或ZF,出現在大部份中央处理器架構中(包括x86、ARM架構、PDP-11、摩托罗拉68000、6502等),零旗標多半會放在特殊功能暫存器(多半是狀態暫存器)中,也會有其他的旗標。 零旗標可以用來判斷算術運算或位元運算指令的結果,若其為1,表示運算結果為0,也會配合進位旗標、符號旗標、溢位旗標等使用。此運算結果包括一些有運算,但是沒有儲存的結果,像大部份傳統的…
溢位旗標(overflow flag)是電腦處理器中,標示是否出現算術溢位的位元,一般會放在狀態暫存器的某個位元。溢位是指此運算的結果無法用二補數配合目前的位元個數儲存。有些處理器會在出現溢位時自動產生例外。 假設,在8位元的暫存器中計算127加127,127+127是254,用二進制表示會是1111 1110,但在二補數下的二進制下,此數為是-2。兩個正數相加,結果是負數,即為溢位(兩個負數相加,結果是正數也是)。此時會設定溢位旗標,…
八精度浮点数(Octuple-precision floating-point)是用来表示浮点数的一种资料型别,在计算机中占据256比特(32字节)大小,因此也称为float256或FP256。在 IEEE 754-2008 中,四精度浮点数格式的正式名称为 binary256。 格式 IEEE 754 标准将八精度浮点数指定为具有: 符号位:1位 指数部分:19位 尾数部分:236位 (由于省略了首位必定存在的“1”,实际上为237位…
四精度浮点数(Quadruple-precision floating-point)是用来表示浮点数的一种资料型别,在计算机中占据128比特(16字节)大小,因此也称为float128或FP128。在 IEEE 754-2008 中,四精度浮点数格式的正式名称为 binary128。 格式 IEEE 754 标准将四精度浮点数指定为具有: 符号位:1位 指数部分:15位 尾数部分:112位 (由于省略了首位必定存在的“1”,实际上为11…
张量浮点-32(TensorFloat-32)是用来表示浮点数的一种资料型别,在计算机中占据19比特大小,专为在某些 Nvidia GPU 上运行的 Tensor Core 而设计。 格式 张量浮点-32格式具有: 符号位:1位 指数部分:8位 尾数部分:10位 (由于省略了首位必定存在的“1”,实际上为11位) 虽然与普通的 32 位 IEEE 754 浮点数相比精度较低,但计算速度要快得多,在 A100 上最多可达 8 倍(与使用 …
雙精度浮點數()是用来表示浮点数的一种資料型別,在计算机中占据64比特(8字节)大小,因此也称为float64或FP64。在IEEE 754中这种64位二进制格式被正式称为binary64格式,而在IEEE 754-1985中被称为double,即双精度。 比起單精度浮點數僅有 32 位元(4字节),雙精度浮點數使用 64 位元(8字节) 來儲存一個浮點數。 它可以表示二進位制的53-{位}-有效數字,其可以表示的数字的绝对值范围为[ …
在计算机科学中,移码()是一种将全0码映射为最小负值、全1码映射为最大正值的编码方案。移码没有标准,但通常对于n位二进制数,偏移量K = 2n−1——这使得真值0的编码的最高位为1、其余位均为0,相当于补码表示的最高位(符号位)取反;另外,移码在逻辑比较操作中可以得到和真值比较相同的结果,补码则当且仅当符号相同时逻辑比较操作的结果和真值比较相同,否则比较结果将颠倒(负值比正值大)。 示例 -120D = -01111000B(真值) 原…
乘積累加運算()是在數位信號;}-處理器或一些微處理器中的特殊運算。實作此運算操作的硬體電路單元,被稱為「乘数累加器」。這種運算的操作,是將乘法的乘積結果和累加器 A 的值相加,再存入累加器: :a \leftarrow a + b \times c 若沒有使用 MAC 指令,上述的程序可能需要二個指令,但 MAC 指令可以使用一個指令完成。而許多運算(例如卷积运算、点积运算、矩阵运算、数字滤波器运算、乃至多项式的求值运算)都可以分解為…
算术逻辑单元(,縮寫:ALU)是一种可对二进制整数执行算术运算或位运算的组合逻辑数字电路。ALU 与浮点数运算单元(FPU)不同,后者仅对浮点数进行操作。ALU 是许多类型的计算电路的基本部件,这些计算电路包括计算机的中央处理单元(CPU)、浮点处理单元(FPU)和图形处理单元(GPU)。单个CPU、FPU 或 GPU 可能包含多个 ALU。 ALU 的输入包括需要运算的数据(也称为运算数)和表明了运算操作类型的指令码。ALU 的输出是…
在电子学中,加法器()是一种用于执行加法运算的数位电路部件,是构成电子计算机核心微处理器中算术逻辑单元的基础。在这些电子系统中,加法器主要负责计算地址、索引等数据。除此之外,加法器也是其他一些硬件,例如二进制数的乘法器的重要组成部分。 尽管可以为不同计数系统设计专门的加法器,但是由于数位电路通常以二进制为基础,因此二进制加法器在实际应用中最为普遍。在数字电路中,二进制数的减法可以通过加一个负数来间接完成。为了使负数的计算能够直接用加法器…
在计算机科学中,整数的概念指数学上整数的一个有限子集。它也称为整数数据类型,或简称整型数、整型。 通常是程式設計語言的一種基礎資料型態,例如java及C 程式語言的int 資料類型,然而這種基礎資料型態只能表示有限的整數,其範圍受制於電腦的一個字組所包含的位元數所能表示的組合總數。當運算結果超出範圍時,即出現演算溢位,微處理器的狀態暫存器中的溢位旗標(overflow flag)會被設定,而系統則會產生溢位例外(overflow exc…
高精度计算是一种程序设计的算法。由于中央處理器的字長限制,如32位CPU中一个整数最大只能取值4,294,967,295(=232-1)。因此在进行更大范围的数值计算中,往往要采取模拟手段。通常通过分离字符的方法通过数字数组进行输入、通过数组倒序输出、通过模拟竖式计算进行计算。一般而言,主要模拟的是按位运算,可以用不同的進位制達成不同的目的。 有許多程式庫支援高精度計算,最著名的是GNU多重精度運算庫。另外,Java,Python和Pa…
在计算机进行运算时,需要将负数编码至二进制形式,所用的编码方法称为有符号数的表示。 在数学中,可以在任意基数的数前面添加负号“−”来表示负数。然而在随机存取存储器和寄存器中,数据均以一系列二进制位表示而没有额外的标志,因此需要一种编码负号的方法。当前有四种方法,用于扩展二进制数字系统,来表示有符号数:原码()、反码()、补码()以及移码(,)。 原码 符號及值(sign & magnitude)的处理办法是分配一个符号位(sign bi…
比较并交换(compare and swap, CAS),是原子操作的一种,可用于在多线程编程中实现不被打断的数据交换操作,从而避免多线程同时改写某一数据时由于执行顺序不确定性以及中断的不可预知性产生的数据不一致问题。 该操作通过将内存中的值与指定数据进行比较,当数值一样时将内存中的数据替换为新的值。 概述 一个CAS操作等价于以下c代码的原子实现: int cas(long addr, long old, long new) { / …