整形在内存中的存储相关知识归纳

简介: 整形在内存中的存储相关知识归纳

1.原码,反码,补码


要清楚地了解整形在内存中是如何存储的,首先我们要明白原反补码。


a.原码:即数字直接翻译成二进制序列


b.反码:即原码的符号位(最高位)不变,其他按位取反(1变0 ,0变1)


c.补码:反码+1


注意:正数的原码,反码,补码相同!!!


例如: 十进制 (-15)在内存中的存储


原码为:10000000000000000000000000001111


反码为:111111111111111111111111111111110000


补码为:111111111111111111111111111111110001


十进制 (15)在内存中的存储


原码为:00000000000000000000000000001111


反码为:00000000000000000000000000001111


补码为:00000000000000000000000000001111

2.大小端存储


大端存储:即把数据的高字节内容存储在低地址中,把数据的低字节内容存储在高地址中。


小端存储:即把数据的高字节内容存储在高地址中,把数据的低字节内容存储在低地址中。


例如:int a=0x11223344;(16进制表示)


大端存储:


低地址  11  22  33  44   高地址


小端存储:


低地址  44  33  22  11   高地址

3.写一个能判断大小端存储的代码


#include<stdio.h>
char check()
{
  int a = 1;       //用1易于判断 其大端字节排序为 00 00 00 01   小端字节排序为 01 00 00 00 
  char* p = (char*)&a;  //所以我们只需判断第一个字节是1还是0即可 char*可向后访问一个字节 将&a强制类型转换
  return *p;
}
int main()
{
  if (check())
  {
    printf("小端\n");
  }
  else
  {
    printf("大端\n");
  }
  return 0;
}


目录
相关文章
|
2天前
|
存储 Java C++
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据,如局部变量和操作数;本地方法栈支持native方法;堆存放所有线程的对象实例,由垃圾回收管理;方法区(在Java 8后变为元空间)存储类信息和常量;运行时常量池是方法区一部分,保存符号引用和常量;直接内存非JVM规范定义,手动管理,通过Buffer类使用。Java 8后,永久代被元空间取代,G1成为默认GC。
10 2
|
5天前
|
存储
数据在内存中的存储(2)
数据在内存中的存储(2)
21 5
|
5天前
|
存储 小程序 编译器
数据在内存中的存储(1)
数据在内存中的存储(1)
23 5
|
6天前
|
存储 安全 Java
SpringSecurity6从入门到实战之初始用户如何存储到内存
Spring Security 在 SpringBoot 应用中默认使用 `UserDetailsServiceAutoConfiguration` 类将用户信息存储到内存中。当classpath有`AuthenticationManager`、存在`ObjectPostProcessor`实例且无特定安全bean时,此配置生效。`inMemoryUserDetailsManager()`方法创建内存用户,通过`UserDetails`对象填充`InMemoryUserDetailsManager`的内部map。若要持久化到数据库,需自定义`UserDetailsService`接口实
|
5天前
|
存储 编译器 C语言
数据在内存中的存储
数据在内存中的存储
13 2
|
5天前
|
存储
数据在内存中的存储(了解数据在内存中的存储规则,看这一篇就够了!)
数据在内存中的存储(了解数据在内存中的存储规则,看这一篇就够了!)
|
1天前
|
存储 C语言
【C语言进阶篇】整数在内存的存储——原码、反码、补码
【C语言进阶篇】整数在内存的存储——原码、反码、补码
|
5天前
|
存储 C语言
C语言----数据在内存中的存储(2)
C语言----数据在内存中的存储
12 0
|
5天前
|
存储 C语言
C语言----数据在内存中的存储(1)
C语言----数据在内存中的存储
|
5天前
|
存储 C语言
C语言---求一个整数存储在内存中的二进制中1的个数--3种方法
C语言---求一个整数存储在内存中的二进制中1的个数--3种方法