双精度浮点数

Oracle基本数据类型

大兔子大兔子 提交于 2019-12-29 10:22:42
一 字符串类型 字符串数据类型还可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种. 所谓固定长度:是指虽然输入的字段值小于该字段的限制长度,但是实际存储数据时,会先自动向右补足空格后,才将字段值的内容存储到数据块中。这种方式虽然比较浪费空间,但是存储效率较可变长度类型要好。同时还能减少数据行迁移情况发生。 所谓可变长度:是指当输入的字段值小于该字段的限制长度时,直接将字段值的内容存储到数据块中,而不会补上空白,这样可以节省数据块空间。 1.1:CHAR类型 CHAR(size [BYTE | CHAR]) CHAR类型,定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。如果创建表时,不指定CHAR长度,则默认为1。另外你可以指定它存储字节或字符,例如 CHAR(12 BYTYE) CHAR(12 CHAR).一般来说默认是存储字节,你可以查看数据库参数 NLS_LENGTH_SEMANTICS的值。 SQL Code SQL> show parameter nls_length_semantics; NAME TYPE VALUE ------------------ ----------- -----------------

IEEE754标准浮点格式

浪子不回头ぞ 提交于 2019-12-25 09:12:23
两种基本浮点格式: 单精度和双精度。IEEE单精度格式具有24位有效数字,并总共占用32 位。IEEE双精度格式具有53位有效数字精度,并总共占用64位 两种扩展浮点格式: 单精度扩展和双精度扩展。此标准并未规定扩展格式的精度和大小,但它指定了最小精度和大小。例如,IEEE 双精度扩展格式必须至少具有64位有效数字,并总共占用至少79 位 浮点运算的准确度要求: 加、减、乘、除、平方根、余数、将浮点格式的数舍入为整数值、在不同浮点格式之间转换、在浮点和整数格式之间转换以及比较。求余和比较运算必须精确无误。其他的每种运算必须向其目标提供精确的结果,除非没有此类结果,或者该结果不满足目标格式。对于后一种情况,运算必须按照下面介绍的规定舍入模式的规则对精确结果进行最低限度的修改,并将经过此类修改的结果提供给运算的目标 在十进制字符串和两种基本浮点格式之一的二进制浮点数之间进行转换的准确度、单一性和一致性要求。对于在指定范围内的操作数,这些转换必须生成精确的结果(如果可能的话),或者按照规定舍入模式的规则,对此类精确结果进行最低限度的修改。对于不在指定范围内的操作数,这些转换生成的结果与精确结果之间的差值不得超过取决于舍入模式的指定误差 五种类型的IEEE 浮点异常,以及用于向用户指示发生这些类型异常的条件。五种类型的浮点异常是 : 无效运算、被零除、上溢、下溢和不精确 四种舍入方向:

Python数值类型

▼魔方 西西 提交于 2019-12-25 04:55:58
数值类型 python的数值类型包括常规的类型:整数(没有小数部分的数字)、浮点数(通俗地说,就是有小数部分的数字)以及其它数值类型(复数、分数、有理数、无理数、集合、进制数等)。除了十进制整数,还有二进制数、八进制数、十六进制数。 类型 示例 --------------------------------------- 整数 1234, -24, 0 浮点数 1.23, 1., .2, 3.14e-10 八进制 0o177, 0O177 十六进制 0x9ff, 0X9ff 二进制 0b1010, 0B1010 需要说明的几点事项: python 3.x中的整数不区分一般整数和长整型整数,3.x版本中的整数支持无穷精度 任何时候浮点数都是不精确的。当带有小数点或科学计数的标记符号e或E,就表示这是浮点数 当浮点数参与表达式的运算时,会以浮点数的规则进行运算,也就是整数会转换成浮点数类型 python中的浮点数精度和C语言的双精度浮点数精度相同 整数除了十进制整数外,还可以写成二进制、八进制、十六进制甚至是其它进制的整数,它们的转换方式见后文 当一个整数以 0b 或 0B 开头,其后都是0、1时,默认识别为二进制整数 当一个整数以 0o 或 0O 开头(数值零和大、小写的字母o),其后都是0-7之间的数值时,默认识别为8进制整数 当一个整数以 0x 或 0X 开始,其后都是 [0

用二进制表示的数

别等时光非礼了梦想. 提交于 2019-12-22 05:11:41
   计算机中的数,是用 定点数 和 浮点数 表示。    定点数 :小数点位置固定的数, 整数和纯小数 是用定点数来表示的,分别称为定点整数和定点纯小数。    浮点数 :对于 既有整数部分、又有小数部分 的数,一般用浮点数表示,浮点数的小数点位置是不固定的,可以浮动。     如:234,4563,0.433 0.32134 等是定点数 而 454.32 234.5466等是浮点数。    对于定点型整数,小数点的位置默认在数值最低位的右边。计算机能表示的定点整型数的大小范围并不是任意的,它与计算机本身的字长有关,还与程序语言的实现环境有关。 45 .   对于定点纯小数,小数点的位置固定在符号位与最高数值位之间。显然,定点纯小数所能表示数的范围较小,并不能满足实际问题的需要。定点纯小数的 精度 与计算机本身的字长有关,与程序语言的实现环境有关。    ※ 在大多数计算机中,存储浮点数时,都会把浮点数转换成两个部分:整数部分和纯小数部分。     整型数的二进制表示 :对于整型数而言,又分为有符号和无符号的两种,有符号的整型数既可以是正数,又可以是负数,正负号由字节的最高位来表示,0表示正数,1表示负数。   🎵 有符号的二进制数      1.一个字节表示的数       如: 1 011 0100 其最高位的1为符号位,因此(1011 0100)的 十进制数 为:-(2^5

python浓缩(5)数字

大兔子大兔子 提交于 2019-12-09 14:15:13
详细介绍每一种数字类型,适用的各种运算符, 及用于处理数字的内建函数。 5.1 数字类型 数字提供了标量贮存和直接访问。它是不可更改类型,也就是说变更数字的值会生成新的对象。 Python 支持多种数字类型:整型、长整型、布尔型、双精度浮点型、十进制浮点型和复数。 如何创建数值对象并用其赋值 anInt = 1 如何更新数字对象 通过给数字对象(重新)赋值, 您可以“更新”一个数值对象。实际上你并没有更新该对象的原始数值。因为数值对象是不可改变对象。Python的对象模型与常规对象模型有些不同。更新实际上是生成了一个新的数值对象,并得到它的引用。 在Python 中, 变量更像一个指针指向装变量值的盒子。 对不可改变类型来说, 你无法改变盒子的内容, 但你可以将指针指向一个新盒子。每次将另外的数字赋给变量的时候,实际上创建了一个新的对象并把它赋给变量.(不仅仅是数字,对于所有的不可变类型,都是这么回事) 如何删除数字对象 你无法真正删除一个数值对象, 你仅仅是不再使用它而已。如果你实际上想删除一个数值对象的引用, 使用 del 语句(参见3.5.6 小节)。如果试图使用一个已经被删除的对象引用, 会引发NameError 异常。 del anInt del aLong, aFloat, aComplex 5.2 整型 Python 有几种整数类型。布尔类型是只有两个值的整型

浮点数在计算机中的存储方式

北城余情 提交于 2019-12-09 12:25:16
文章参考地址: http://www.cnblogs.com/xugang/archive/2010/05/04/1727431.html C语言和 C#语言中,对于浮点型的数据采用 单精度类型 (float)和 双精度类型 (double)来存储: float 数据占用 32bit; double 数据占用 64bit; 我们在声明一个变量 float f = 2.25f 的时候,是如何分配内存的呢? 其实不论是 float 类型还是 double 类型,在存储方式上都是遵从IEEE的规范: float 遵从的是 IEEE R32.24; double 遵从的是 IEEE R64.53; 单精度 或 双精度 在存储中,都分为三个部分: 符号位 (Sign):0代表正数,1代表为负数; 指数位 (Exponent):用于存储科学计数法中的指数数据; 尾数部分 (Mantissa):采用移位存储尾数部分; 单精度 float 的存储方式如下: 双精度 double 的存储方式如下: R32.24 和 R64.53 的存储方式都是用 科学计数法来存储数据 的,比如: 8.25 用十进制表示为:8.25 * 10 0 120.5 用十进制表示为:1.205 * 10 2 而计算机根本不认识十进制的数据,他只认识0和1。所以在计算机存储中,首先要将上面的数更改为 二进制的科学计数法 表示:

float和double的主要区别?

僤鯓⒐⒋嵵緔 提交于 2019-12-05 06:55:15
float : 单精度浮点数 double : 双精度浮点数 两者的主要区别如下: 01.在内存中占有的字节数不同 单精度浮点数在机内存占4个字节 双精度浮点数在机内存占8个字节 02.有效数字位数不同 单精度浮点数有效数字8位 双精度浮点数有效数字16位 03.数值取值范围 单精度浮点数的表示范围:-3.40E+38~3.40E+38 双精度浮点数的表示范围:-1.79E+308~-1.79E+308 04.在程序中处理速度不同 一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快 如果不声明,默认小数为double类型,所以如果要用float的话,必须进行强转 例如:float a=1.3; 会编译报错,正确的写法 float a = (float)1.3;或者float a = 1.3f;(f或F都可以不区分大小写) 注意:float是8位有效数字,第7位数字将会四舍五入 面试题: 1.java中3*0.1==0.3将会返回什么?true还是false? fale,因为浮点数不能完全精确的表示出来,一般会损失精度。 2.java中float f = 3.4;是否正确? 不正确,3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型会造  成精度损失,因此需要强制类型转换float f = (float)3.4;或者写成 float f = 3

NumPy简明教程(二、数组1)

匿名 (未验证) 提交于 2019-12-03 00:30:01
NumPy数组是一个多维数组对象,称为ndarray。其由两部分组成: 实际的数据 描述这些数据的元数据 大部分操作仅针对于元数据,而不改变底层实际的数据。 关于NumPy数组有几点必需了解的: NumPy数组的下标从0开始。 同一个NumPy数组中所有元素的类型必须是相同的。 在详细介绍NumPy数组之前。先详细介绍下NumPy数组的基本属性。NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推。在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量。比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是NumPy中的轴(axes),第一个轴相当于是底层数组,第二个轴是底层数组里的数组。而轴的数量――秩,就是数组的维数。 NumPy的数组中比较重要ndarray对象属性有: ndarray.ndim:数组的维数(即数组轴的个数),等于秩。最常见的为二维数组(矩阵)。 ndarray.shape:数组的维度。为一个表示数组在每个维度上大小的整数元组。例如二维数组中,表示数组的“行数”和“列数”。ndarray.shape返回一个元组,这个元组的长度就是维度的数目,即ndim属性。 ndarray.size:数组元素的总个数,等于shape属性中元组元素的乘积。 ndarray

输出保留12位小数的浮点数

匿名 (未验证) 提交于 2019-12-02 23:57:01
输出保留12位小数的浮点数 描述 读入一个双精度浮点数,保留12位小数,输出这个浮点数。 输入 只有一行,一个双精度浮点数。 输出 也只有一行,保留12位小数的浮点数。 输入样例 1 3.1415926535798932 输出样例 1 3.141592653580 答案我在此我就不写了,因为这是 NOIP 的测试题,有兴趣的可以拿去做一下! 来源:博客园 作者: 杨至诚 链接:https://www.cnblogs.com/yangzhicheng-blog/p/11455058.html

汇编指令

淺唱寂寞╮ 提交于 2019-12-01 19:06:29
指令 功能 应用实例 LB 从存储器中读取一个字节的数据到寄存器中 LB R1, 0(R2) LH 从存储器中读取半个字的数据到寄存器中 LH R1, 0(R2) LW 从存储器中读取一个字的数据到寄存器中 LW R1, 0(R2) LD 从存储器中读取双字的数据到寄存器中 LD R1, 0(R2) L.S 从存储器中读取单精度浮点数到寄存器中 L.S R1, 0(R2) L.D 从存储器中读取双精度浮点数到寄存器中 L.D R1, 0(R2) LBU 功能与LB指令相同,但读出的是不带符号的数据 LBU R1, 0(R2) LHU 功能与LH指令相同,但读出的是不带符号的数据 LHU R1, 0(R2) LWU 功能与LW指令相同,但读出的是不带符号的数据 LWU R1, 0(R2) SB 把一个字节的数据从寄存器存储到存储器中 SB R1, 0(R2) SH 把半个字节的数据从寄存器存储到存储器中 SH R1,0(R2) SW 把一个字的数据从寄存器存储到存储器中 SW R1, 0(R2) SD 把两个字节的数据从寄存器存储到存储器中 SD R1, 0(R2) S.S 把单精度浮点数从寄存器存储到存储器中 S.S R1, 0(R2) S.D 把双精度数据从存储器存储到存储器中 S.D R1, 0(R2) DADD 把两个定点寄存器的内容相加,也就是定点加 DADD R1,R2