数据在内存中的存储

简介: 数据在内存中的存储

整数

有符号整数最高位是符号位,0表示正数,1表示负数。无符号整数最高位是数值位。


浮点数

浮点数在内存中比较复杂。浮点数用二进制表示的通用式是:(-1)^S  *  M  *  2 ^ E

S决定了它的正负 ,M位该浮点数的有效数字, 2^E为浮点数的指数位。举个例子,10进制的5.5用二进制表示为101.1, 科学计数法表示为1.011 *  2^2, 由此可知, S为0, M为1.011, E为2.而在内存中存储的不是浮点数本身,而是S, M, E。在32位中,用最高位的第一位存储S, S后面的8位存储E, 剩下的23位存M。在64位中最高位存S, 后面的11位存E, 剩下的52位存M。实际上内存在存M(有效数字)的时候不会存整数“ 1 ”, 只存小数点后面的数字。这样做的好处是:可以多出来一比特的空间存更多的数字。再存E的时候, 并不会存E的真实值, E的真实值会加一个中间值,在32位中,中间值是127, 64位中是1023.为什么要这样做呢?因为存E的8个(11个)比特位中没有符号位,只能存正数。

相关文章
|
10天前
|
存储 C语言
数据在内存中的储存
数据在内存中的储存
12 3
|
10天前
|
存储 Java C++
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据,如局部变量和操作数;本地方法栈支持native方法;堆存放所有线程的对象实例,由垃圾回收管理;方法区(在Java 8后变为元空间)存储类信息和常量;运行时常量池是方法区一部分,保存符号引用和常量;直接内存非JVM规范定义,手动管理,通过Buffer类使用。Java 8后,永久代被元空间取代,G1成为默认GC。
22 2
|
12天前
|
存储
数据在内存中的存储(了解数据在内存中的存储规则,看这一篇就够了!)
数据在内存中的存储(了解数据在内存中的存储规则,看这一篇就够了!)
|
8天前
|
存储 C语言
【C语言进阶篇】整数在内存的存储——原码、反码、补码
【C语言进阶篇】整数在内存的存储——原码、反码、补码
|
12天前
|
存储 C语言
C语言----数据在内存中的存储(2)
C语言----数据在内存中的存储
16 0
|
18天前
|
消息中间件 存储 Kafka
实时计算 Flink版产品使用问题之 从Kafka读取数据,并与两个仅在任务启动时读取一次的维度表进行内连接(inner join)时,如果没有匹配到的数据会被直接丢弃还是会被存储在内存中
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
13天前
|
存储
数据在内存中的存储(2)
数据在内存中的存储(2)
25 5
|
13天前
|
存储 小程序 编译器
数据在内存中的存储(1)
数据在内存中的存储(1)
27 5
|
14天前
|
存储 安全 Java
SpringSecurity6从入门到实战之初始用户如何存储到内存
Spring Security 在 SpringBoot 应用中默认使用 `UserDetailsServiceAutoConfiguration` 类将用户信息存储到内存中。当classpath有`AuthenticationManager`、存在`ObjectPostProcessor`实例且无特定安全bean时,此配置生效。`inMemoryUserDetailsManager()`方法创建内存用户,通过`UserDetails`对象填充`InMemoryUserDetailsManager`的内部map。若要持久化到数据库,需自定义`UserDetailsService`接口实