oracle数字类型存储转换的实现方案
2023-11-17 00:10:17
oracle通过相应的算法转换将数据存储在数据库中。本文简要介绍了oracle的数字存储与转换,这是为了回答留言板上的第2119号问题。 我们可以通过转储函数转换一个数字的内存形式,而一个简单的输出类似于下面的格式: 复制代码代码如下所示: 从两个转储中选择转储(1);转储(1) C 典型值= 2 = 2:193,2 Len 转储函数的输出格式类似: 类型,符号指数{数字1,数字2,数字3,…,数字20 } 你们所有人的意思如下: 1。类型:数字,类型= 2(类型代码可以在Oracle文档中找到) 2。长度:存储的字节数。 三.符号指数 在存储中,Oracle分别存储正和负的数字。 正数:添加1个存储(以避免null) 负数:负101,如果总长度小于21字节,最后为102(按顺序)。 指数变换: 正数:索引=符号指数- 193(最高为正值1) 负数:索引= 62 -第一字节 4。从一开始就是一个有效的数据位。 从开始到最高有效位,存储的数值方法是: 添加以下计算结果: 每一个乘以100个(指数n)(n是有效位的个数,第一个有效位的n=0)。 5。说明 复制代码代码如下所示: 从两个转储中选择转储(123456.789);转储(123456.789) 氨 典型值= 2 = 6:195,13,35,57,79,91 Len :195-193 = 2 13-1 = 12 * 100 ^(2-0)120000 数= 34×100 ^(2-1)3400 57-1 = 56 * 100 ^(2-2)56 79-1 = 78 * 100 ^ 78(2-3)。 我国= 90 * 100 ^(2-4)。009 十二万三千四百五十六点七八九 复制代码代码如下所示: 从双转储中选择转储(- 123456.789);转储(- 123456.789) ---------------------------------- 典型值= 2 = 7:60,89,67,45,2311102 Len 62-60 = 2(最高是0,代表的是消极的) 101-89 = 12 * 100 ^(2-0)120000 101-67 = 34 * 100 ^(2-1)3400 101-45 = 56 * 100 ^(2-2)56 101-23 = 78 * 100 ^ 78(2-3)。 101-11 = 90 * 100 ^(2-4)。009 123456.789(-) 现在再想想为什么-123456.789实际上是存储在数据库中作为最终排序需要102。 60,89,67,45,23,11 和-123456.78901实际上是存储在数据库中 60,89,67,45,23,11,91 可以看出,如果你不加102,最后的123456.789 -123456.78901发生<<排序时,排序。 对于第2119个问题,第一个问题是: 1。为什么193,2意味着什么意思 你可以从中看到答案。 2。为什么数字数字类型的长度是2字节 对于这个问题,我想我们应该知道,所有的数据类型最终都存储在二进制计算机中。事实上,所谓的数据类型是由我们定义的。因此,存储仅由算法确定。 所以这个问题是不成立的。例如: 复制代码代码如下所示: 从两个转储中选择转储(110);转储(110) 贸易数据交换 典型值= 2 len = 3:194,2,11sql >选择转储(1100)从双;倾倒(1100) ------------------- 典型值= 2 = 2:194,12 Len 我们将看到,虽然1100 > 110,但1100的存储只占2字节,而110占3字节。tag:转换 数字 类型 方案 电脑软件
相关内容