标签:#二进制算术

共 29 篇文章

位元

位元(,亦称二進制位)指二进制中的一位,是資訊的最小单位。bit是binary digit(二进制数位)的混成詞,由数学家约翰·图基提出(提出时间可能是1946年,但有资料称1943年就提出了)。这个术语第一次被正式使用,是在香农著名的论文《通信的数学理论》(A Mathematical Theory of Communication)第1页中。 假设一事件以A或B的方式发生,且A、B发生的概率相等,都为0.5,则一个二进位可用来代表A…

Bfloat16格式

bfloat16()是一种计算机数字存储格式,在计算机内存中占用16位,简称BF16。此格式是32位IEEE 754单精度浮点格式的缩短版本,旨在加速机器学习计算。它通过保留8位指数位来保留32位浮点数的范围,但仅支持8位精度,而不是32位浮点数格式的24位有效精度。与标准的IEEE16位浮点数相比,bfloat16有更多的指数位与更少的尾数位,可以用于减少存储需求并提高机器学习算法的计算速度。 格式 bfloat16格式具有: 符号位…

以2為底的對數

在数学中,以为底的对数(),又称二进制对数,是为了得到 必须将乘方的指数。 即对于任何实数 , :x = \log_2 n \Leftrightarrow 2^x = n 例如,,,,。 以为底的对数是以为底的指数函数的反函数,又记作 , 或 许多数学软件都有计算以为底的对数的功能。自C99起的C语言标准数学函数库和自C++11起的C++语言标准数学函数库中包含了 log2、log2f 及 log2l 函数用来计算以为底的对数。以为底的…

二进制

二進制()在數學和數位電路中指以2為底数的記數系統,以2為基數代表系統是二進位制的。這一系統中,通常用兩個不同的數字0和1來表示。數字電子電路中,邏輯門直接採用了二進制,因此現代的計算機和依赖計算機的設備裡都用到二進制。每個數字稱為一個位元(二進制位)或比特(Bit,Binary digit 的縮寫)。 历史 现代的二进制记数系统由戈特弗里德·莱布尼茨于1679年设计,在他1703年发表的文章《论只使用符号0和1的二进制算术,兼论其用途…

二進碼十進數

二進碼十進數(,簡稱BCD,中国大陆称BCD码或二-十进制编码)是一種十进制數字編碼的形式。在這種編碼下,每个十进制数字用一串单独的二进制位元來儲存與表示。常见的有以4位元表示1个十进制数字,称为压缩的BCD码(compressed or packed);或者以8位元表示1个十进制数字,称为未压缩的BCD码(uncompressed or zoned)。 這種編碼技术,最常用於會計系統的設計裡,因為會計制度經常需要對很長的數字做準確的計…

一補數

二进制数的反码()是指将二进制数每個數字反转得到的数:若某一位为0,则使其变为1,反之亦然。 反码表示法()是一种在计算机中用机器码表示有符号数的方式之一,其中正数使用原码,负数使用反码。该表示法常简称反码。 一補數以有符號位元的二進位數定義。 一補數是有符號位元的二進位數。 正數和0的一補數就是該數字本身。 一補數在很多算术运算中的表现与这个数的相反数很相似,此特性可使加法电路同时可以运算减法。然而,由于一補數中存在多余的负零和其它问…

位操作

位操作是程序设计中对位数组或二进制数的一元和二元操作。在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。在现代架构中,位运算的运算速度通常与加法运算相同(仍然快于乘法运算),但是通常功耗较小,因为资源使用减少。 位运算符 下面的解释中,任何二进制位的表示都从右侧(最低位)开始计数,向左进。举个例子,二进制值0001(十进制1)除第一位(即最右边)每位上都是0。 取反(NOT) 取反是一元运算符,对一个二进制数…

單精度浮點數

单精度浮点数()是用来表示浮点数的一种数据类型,在计算机中占据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等计算机图形环境中使用。其…

布斯乘法算法

布斯乘法算法()是计算机中一种利用数的2的补码形式来计算乘法的算法。该算法由安德鲁·唐纳德·布思于1950年发明,当时他在伦敦大学柏贝克学院做晶体学研究。布斯曾使用过一种台式计算器,由于用这种计算器来做移位计算比加法快,他发明了该算法来加快计算速度。布斯算法在计算机体系结构学科中备受关注。 算法描述 对于N位乘数Y,布斯算法检查其2的补码形式的最后一位和一个隐含的低位,命名为y-1,初始值为0。对于yi, i = 0, 1, ..., …

八精度浮點數

八精度浮点数(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

张量浮点-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-{位}-有效數字,其可以表示的数字的绝对值范围为[ …

异或链表

异或链表()是数据结构里面的一种链式存储结构,可以在降低空间复杂度的情况下达到和双向链表一样的目的,使得在任何一个结点都能方便地访问它的前驱结点和后继结点。 概述 普通双向链表的每个结点有三个域 ,分别存储着前一个结点的地址、后一个点的地址,以及数据 ... A B C D E ... –> next –> next –> next –> A⊕C B⊕D C⊕E link(B) = addr(A)⊕addr(C), link(C) = …

乘法器

二进制的乘法器()是数字电路的一种元件,它可以将两个二进制数相乘。乘法器是由更基本的加法器组成的。乘法器作为基本的功能单元电路被广泛的应用于各种的信号处理和变换电路中。 模拟乘法器是可以实现两个模拟信号相乘功能的非线性电子线路。 可以使用一系列计算机算数技术来实现数字乘法器。大多数的技术涉及了对部分积()的计算(其过程和使用竖式手工计算多位十进制数乘法十分类似),然后将这些部分积相加起来。这一过程与小学生进行多位十进制数乘法的过程类似,…

掩码

掩码()在计算机学科及数字逻辑中指的是一串二进制数字,通过与目标数字的按位操作,达到屏蔽指定位而实现需求。 示例 创造一个掩码msk把一个指令cmd的第0~3位(右边第一位为0位)清零: 指令cmd = 0110011011 创造掩码msk = 0000001111 用掩码的反码~msk和指令cmd做按位与运算cmd & ~msk = 0110011011 & 1111110000 = 0110010000 则指定的第0~3位已被清零。…

循環冗餘校驗

循環冗餘校驗(,通稱「CRC」)是一種根據網路數據封包或電腦檔案等數據產生簡短固定位數驗證碼的一種散列函數,主要用來檢測或校驗數據傳輸或者保存後可能出現的錯誤。生成的數字在傳輸或者儲存之前計算出來並且附加到數據後面,然後接收方進行檢驗確定數據是否發生變化。由於本函數易於用二進制的電腦硬件使用、容易進行數學分析並且尤其善於檢測傳輸通道干擾引起的錯誤,因此獲得廣泛應用。此方法是由於1961年發表。 CRCs經常被叫做「校驗和」,但是這樣的說…

奇偶校验位

奇偶校验位()或校验比特()是一个表示给定位数的二进制数中1的个数是奇数还是偶数的二进制数。奇偶校验位是最简单的错误检测码。 类型 奇偶校验位有两种类型:偶校验位与奇校验位。 以偶校验位來說,如果一组给定数据位中1的个数是奇数,補一個bit(0或1)在最右方,使得总的1的个数是偶数。例:0000001, 補一個bit为1, 00000011。 以奇校验位來說,如果给定一组数据位中1的个数是奇数,補一個bit(0或1)在最右方,使得总的1…

二補數

二補數()是一種用二進位表示有符号數的方法,也是一種將數字的正負號變號的方式,常在電腦科學中使用。二補數以有符號位元的二進位數定義。 正數和0的二補數就是該數字本身再補上最高位元0。負數的二補數則是將其绝对值按位取反再加1。 二補數系統的最大優點是可以在加法或減法處理中,不需因為數字的正負而使用不同的計算方式。只要一種加法電路就可以處理各種有號數加法,而且減法可以用一個數加上另一個數的二補數來表示,因此只要有加法電路及二補數電路即可完成…