关于这个问题,我们可以从以下几个方面来回答:
减掉一个值因为指数必须是有号数才能表达很大或很小的数值,但是有号数通常的表示法——补码(two's complement),将会使比较变得困难。这是因为补码的大小很难直接看出来。...,这使得两个浮点数的指数大小的比较更为容易,实际上可以按照字典序比较两个浮点表示的大小。...这也是最大的正非规约数,接近但略小于最小的规约数2-126。 同理最大的负非规约数,接近但略大于最大的规约数-2-126。...形式 指数 小数部分 0 0 0 非规约形式 0 非0 规约形式 1 ~ 2e - 2 任意 无穷 2e - 1 0 NaN 2e - 1 非0 ② 规约浮点数的尾数大于等于1且小于2。...0或1 -126 0 0000 0000 000 0000 0000 0000 0000 0001 约等于±1.4E-45 中间大小的非规约数 0或1 -126 0 0000 0000 100 0000
除了这 3 个特殊值之外,剩下的数值中一半是正数,一半是负数。数值 0 也有正数和负数两种形式,称为正 0 和负 0,分别用 +0 和 -0 来表示。...18800000000 = 1.88 x 1010 0.000000000188 = 1.88 x 10 -10 64位的指数位长度为11,32位的指数长度位为8,所以64位双精度所能表示的范围远大于...指数实际的存储:指数的值可能为负数,如果采用补码表示的话,全体符号位S和Exp自身的符号位将导致不能简单的进行大小比较。正因为如此,指数部分通常采用一个无符号的正数值存储。...单精度的指数部分是-126 ~ +127,加上固定偏移值127,指数值的大小从1 ~ 254(0和255是特殊值)。浮点小数计算时,指数值减去固定偏移值将是实际的指数大小。...采用指数的实际值加上固定的偏移值的办法表示浮点数的指数,好处是可以用长度为 e 个比特的无符号整数来表示所有的指数取值,这使得两个浮点数的指数大小的比较更为容易,实际上可以按照字典序比较两个浮点表示的大小
S为符号位,Exp为指数字,Fraction为有效数字。 指数部分即使用所谓的偏正值形式表示,偏正值为实际的指数大小与一个固定值(32位的情况是127)的和。采用这种方式表示的目的是简化比较。...因为,指数的值可能为正也可能为负,如果采用补码表示的话,全体符号位S和Exp自身的符号位将导致不能简单的进行大小比较。正因为如此,指数部分通常采用一个无符号的正数值存储。...S为符号位,Exp为指数字,Fraction为有效数字。指数部分即使用所谓的偏正值形式表示,偏正值为实际的指数大小与一个固定值(64位的情况是1023)的和。采用这种方式表示的目的是简化比较。...因为,指数的值可能为正也可能为负,如果采用补码表示的话,全体符号位S和Exp自身的符号位将导致不能简单的进行大小比较。正因为如此,指数部分通常采用一个无符号的正数值存储。...浮点数的比较 浮点数基本上可以按照符号位、指数域、尾数域的顺序作字典比较。显然,所有正数大于负数;正负号相同时,指数的二进制表示法更大的其浮点数值更大。
为零或正数,最终的结果中,小数点后面的位数就等于scale标度 比如: scale为1 10的-1次方, 0.1 小数点后有1位 如果 scale 是负数,那最终的结果将会是乘以 10的|scale...int compareTo(BigDecimal val)值相等但具有不同标度的两个 BigDecimal 对象(如,2.0 和 2.00)被认为是相等的 注意:与equals中的相等含义不同小于、等于或大于...此转换也可能丢失关于 BigDecimal 值精度的信息 doubleValue()转换为 double如果此 BigDecimal 的数量太大而不能表示为 double将其适当地转换为 Double.NEGATIVE_INFINITY...移动小数点 movePointLeft该值的小数点向左移动 n 位如果 n 为负数,则该调用等效于 movePointRight(-n)如果 n 为非负数,则调用仅将 n 添加到该标度返回的值和标度分别为...: movePointRight小数点向右移动 n 位如果 n 为负,则该调用等效于 movePointLeft(-n)如果 n 为非负数,则该调用仅从该标度减去 n返回的值和标度分别为: BigDecimal
采用指数的实际值加上固定的偏移值的办法表示浮点数的指数,好处是可以用长度为e个比特的无符号整数来表示所有的指数取值,这使得两个浮点数的指数大小的比较更为容易,实际上可以按照字典序比较两个浮点表示的大小。...规约浮点数的尾数大于等于1且小于2,而非规约浮点数的尾数小于1且大于0. 除了规约浮点数,IEEE754-1985标准采用非规约浮点数,用来解决填补绝对值意义下最小规格数与零的距离。...1823位长SExpFraction3130至23 偏正值(实际的指数大小+127)22至0位编号(从右边开始为0) S为符号位,Exp为指数字,Fraction为有效数字。...11152位长SExpFraction6362至52 偏正值(实际的指数大小+1023)51至0位编号(从右边开始为0) S为符号位,Exp为指数字,Fraction为有效数字。...浮点数的比较[编辑] 浮点数基本上可以按照符号位、指数域、尾数域的顺序作字典比较。显然,所有正数大于负数;正负号相同时,指数的二进制表示法更大的其浮点数值更大。
(1).符号位(S):最高位(31位)为符号位,表示整个浮点数的正负,0为正,1为负; (2).指数位(E):23-30位共8位为指数位,这里指数的底数规定为2(取值范围:0-255)。...另外,标准中,还规定了,当指数位8位全0或全1的时候,浮点数为非正规形式(这个时候尾数不一样了),所以指数位真正范围为:-126~127。...具体形式如下: 符号 指数 部分 指数部分-127 尾数部分 小数部分的 最高有效位 形式 1 255 128 非0 没有 NaN 1 255 128 0 没有 负无穷 1 1~254 -126~127...任意 1 正规形式(负数) 1 0 -127 非0 0 非正规形式(负数) 1 0 -127 0 没有 负0 0 0 -127 0 没有 正0 0 0 -127 非0 0 非正规形式(正数) 0 1~...由浮点数的值计算公式可知:当指数的最终值为负,虽然这个时候浮点数的值能表示更小,但这个时候仅仅能表示0~1(或-1~0)这个数段的小数,没有实际意义。所以精度主要是看尾数的值。
三种表示方法均有符号位和数值位两部分,符号位都是用0表示==“正”,用1表示“负”==,而数值位 正数的原、反、补码都相同。 负整数的三种表示方法各不相同。...2.2大小端介绍 大端(字节序)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 小端(字节序)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中...为什么会有大小端? 这是因为在计算机系统中,我们是以字节为单位的,每个地址单元 都对应着一个字节,一个字节为8 bit。...M表示有效数字,大于等于1,小于2。 2^E表示指数位。 IEEE 754规定: 对于32位的浮点数,最高的1位是符号位s,接着的8位是指数E,剩下的23位为有效数字M。...然后,指数E从内存中取出还可以再分成三种情况: E不全为0或不全为1 这时,浮点数就采用下面的规则表示,即指数E的计算值减去127(或1023),得到真实值,再将有效数字M前加上第一位的1。
菜单导航 1、常用数学公式: 等差/等比数列通项和求和、指数、对数、排列组合等 2、逻辑且/或/非/异或,和余数 3、数学归纳法 4、排列组合 5、递归 6、指数爆炸 一、常用数学公式 1.0 实数:...有理数和无理数的总称,常用字母R表示实数集; 有理数是整数和分数的集合,有理数的小数部分是有限或者无限循环的数;小数部分为无限不循环的数为无理数; 自然数:全体非负整数组成的集合,常用字母N来表示...质数:又称素数,大于1的自然数中,除了1和它本身以外不再有其他因数;因数:又叫约数,整数a除以整数b(b≠0)的商正好是整数而没有余数,则b是a的因数; 幂:乘方的结果。...或 ? (q≠1)。 等比中项: ? ; 即等比数列中,若q+p = 2r, 则有 ? , ? 为 ? 等比中项。 ...二、逻辑且/或/非/异或,和余数 2.1 计算机为什么采用二进制计数法 2.1.1 在10进制计数法中,位数少,但是数字的种类多。
数字判断函数或宏 //如果x是正无穷大返回1,负无穷大返回-1,否则返回0 int isinf(x) //如果x是无穷大返回0 int isfinite(x) //如果x是一个规格化浮点数则返回非0...double x); 举例来说我们要对于一个负浮点数按0.5进行四舍五入处理:即当某个负数的小数部分大于等于0并且小于0.5时则舍弃掉小数部分,而当小数部分大于等于0.5并且小于1时则等于0.5。...0.5则返回的整数大于浮点数;如果x是负数,那么当小数部分小于0.5则返回的整数大于浮点数,如果小数部分大于等于0.5则返回的整数小于浮点数。...,对一个负数求floor则会返回一个小于等于负数的负整数,而对一个负数求trunc则会返回一个大于等于负数的负整数。...而尾数部分的二进制位全为0时则表示的浮点数是无穷INFINITY,如果符号位为0则表示正无穷大,而符号位为1则表示负无穷大。 当浮点数中的指数部分的二进制位全为1。
显然,他们都是普通的浮点数(指数为 -125,大于允许的最小值 -126;尾数更没问题),按照 IEEE 754 可以分别保存为 00000001000100000000000000000000(0x1100000...不难得出,该差值为 0.0001 × 2-125,表达为规范浮点数则为 1.0 × 2-129。问题在于其指数大于允许的最小指数值,所以无法保存为规范浮点数。...为了解决此类问题,IEEE 标准中引入了非规范(Denormalized)浮点数。规定当浮点数的指数为允许的最小指数值,即 emin 时,尾数不必是规范化的。...对于负数结果也是如此,只不过此时舍入为负无穷,也就是说符号域为 1 的无穷。有了 NaN 的经验我们不难理解,特殊值无穷使得计算中发生的上溢错误不必以终止运算为结果。...无穷和除 NaN 以外的其它浮点数一样是有序的,从小到大依次为负无穷,负的有穷非零值,正负零(随后介绍),正的有穷非零值以及正无穷。
符号位是1的时候是负整数。而数值位上,正整数的反码、补码和原码是相同的。负整数,反码、补码和原码是不一样的。 原码:直接将二进制按照正负数的形式翻译成二进制就可以。...为什么会有大小端模式之分呢? 这是因为在计算机系统中,我们是以字节为单位的,每个地址单元 都对应着一个字节,一个字节为8bit。...;当s=1,V为负数。 ...M表示有效数字,大于等于1,小于2。 2^E表示指数位 举个例子:十进制的5.0,写成二进制是 101.0 ,相当于 1.01×2^2 。 ...然后,指数E从内存中取出还可以再分成三种情况: ①E不全为0或不全为1 这时,浮点数就采用下面的规则表示,即指数E的计算值减去127(或1023),得到真实值,再将 有效数字M前加上第一位的1。
),正数时符号位为 0 负数时符号位为 1(0有两种表示:+0 和 -0),其余位表示数值的大小 「例:」 我们这次使用 8 位(bit)二进制表示一个数,那么正 5 的原码为 0000 0101,负...=2047) + 1.M 那么非规格化就是阶码全为 0,指数为 -1023 的特殊情况了,如果尾数全为 0,则浮点数表示正负 0,否则表示那些非常的接近于 0.0 的数,如下 S + 00000000000...+ M 非规格化指的是阶码全为 0 ,那么表示了还有一种情况阶码全部为 1,指数就是 1024,在这种情况下,如果尾数全部为 0 ,那就是无穷大,若尾数不等于 0,那就是我们常说的 NaN 了 无穷大...,最小正数和最大负数 而最终的数字范围即 最小负数~最大负数 并上 最小正数~最大正数 从S、E、M即数符、阶码、尾数三个维度看,S 代表正负,阶码 E 的值远大于尾数 M 的个数,所以阶码 E 决定大小...,即无穷大与无穷小,学名叫做正向溢出 上面说的是规格化下,那么非规格化下,也就是指数为 0(最小阶码) - 1023 (偏移量) = - 1023,即 10000000001 从指数来看,我们可以得出最小值是
三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位负整数的三种表示方法各不相同。 原码 直接将二进制按照正负数的形式翻译成二进制就可以。...2.大小端介绍 什么大端小端: 大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中...为什么有大端和小端: 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8 bit。...;当s=1,V为负数 M表示有效数字,大于等于1,小于2 2^E表示指数位。...然后,指数E从内存中取出还可以再分成三种情况: E不全为0或不全为1 这时,浮点数就采用下面的规则表示,即指数E的计算值减去127(或1023),得到真实值,再将有效数字M前加上第一位的1。
[Toc] 小数 正数:原码=补码 负数: 原码 = 正数部分(去掉负号)的二进制值,且符号位(最左边的比特位)为1 反码 = 正数部分(去掉负号)的二进制值,按位取反 补码 = 反码 + 1 小数点依旧用点...最大都是全1,最小都是全0 特殊情况 指数全为1 尾数全为0 视为无穷大。 若符号位为1则是负无穷大,为0 则是正无穷大。 运用无穷大,在计算中无需检查溢出。...溢出处理 阶码溢出 上溢 超过了阶码可能表示的最大值的正指数值,一般将其认为是+∞和-∞。 下溢 超过了阶码可能表示的最小值的负指数值,一般将其认为是0。...进制的规格化: 绝对值大于或等于1/R。...在计算机内,其纯小数部分被称为浮点数的尾数,对非 0 值的浮点数,要求尾数的绝对值必须 >= 1/2,即尾数域的最高有效位应为1,称满足这种表示要求的浮点数为规格化表示: 0.1000101010
整型类型分为4种不同类型: 字节型(byte)、短整型(short)、整型(int)、长整型(long),这4种类型所占的存储空间大小和取值范围如下所示: ?...byte类型变量赋值 byte a = 56; //正确,允许byte或short范围内的直接赋值给byte或short。 (二)浮点型 浮点型主要存储小数数值。...在取值范围中E表示以10为底的指数。e后面的+号和-号表示正指数和负指数,例如5.12e+2表示5.12乘10的2次方。 在一个float类型的变量赋值需要注意,所赋值的后面加F或f。...负无穷大:double或float的NEGATIVE_INFINITY。负数除以0的结果。 非数:double或float的NaN。0.0除以0.0或对一个负数开方的结果。...所有正无穷大数值都相等,所有负无穷大数值都相等,NaN不与任何数值(包括自身)相等。 (三)字符型 1.Java中采用Unicode编码的16位字符类型,表示范围为0~65536。
负整数的三种表示方法各不相同 原码: 直接将数值按照正负数的形式翻译成二进制。 反码: 原码符号位不变,其他位依次按位取反。 补码: 反码+1。 对于整型来说,数据存放内存中其实是补码。...2.2 -> 大小端介绍 大端: 大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中。...;当 S=1 , V 为负数。...-> M 表示有效数字,大于等于 1 ,小于 2 。 -> 2^E 表示指数位。...然后,指数 E 从内存中取出还可以再分成三种情况: E 不全为 0 或不全为 1 这时,浮点数就采用下面的规则表示,即指数 E 的计算值减去 127( 或 1023) ,得到真实值,再将有效数字
这种表示法允许计算机利用其电子组件的两种状态(开或关)来存储、处理和传输信息。理解计算机中数据的不同表示方式对于深入理解计算机工作原理和编程非常重要。...有符号和无符号整数:无符号整数只能表示非负数,利用所有的位表示数值本身。有符号整数使用其中一个位(通常是最高位)作为符号位,以表示正数和负数。常用的有符号整数表示法包括原码、反码和补码。...浮点数:用于表示实数,包括小数和很大或很小的数。遵循IEEE 754标准,通常分为单精度(32位)和双精度(64位)格式,包括符号位、指数部分和尾数部分。...这种表示法的符号位(最高位)仍然是0表示正数和正零,1表示负数和负零。反码的特点正数和正零:正数的反码就是其本身的二进制表示,最高位为0。负数:负数的反码是将原码的数值位取反,符号位保持为1。...负数的补码:负数的补码是其原码的反码(所有非符号位取反)加1。例如,-5(十进制)在8位表示系统中的补码是11111011。
这又是因为什么 大小端 大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地...为什么有大端和小端: 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8 bit。...;当S=1,V为负数。...M表示有效数字,大于等于1,小于2。 2^E表示指数位。...这样就出现了三种情况 E不全为0或不全为1 这时,浮点数就采用下面的规则表示,即指数E的计算值减去127(或1023),得到真实值,再将有效数字M前加上第一位的1。
领取专属 10元无门槛券
手把手带您无忧上云