当前位置: 首页 > news >正文

基本的数据类型在16位、32位和64位机上所占的字节大小

1、目前常用的机器都是32位和64位的,但是有时候会考虑16位机。总结一下在三种位数下常用的数据类型所占的字节大小。

数据类型16位(byte)32位(byte)64位(byte)取值范围
char111-128 ~ 127
unsigned char1110 ~ 255
short int / short222-32768~32767
unsigned short2220 ~ 65535
int244-2147483648~2157483647
unsigned int2440~4294967295
long int / long448-2147483648~2147483647
unsigned long4480~42294967295
long long int / long long888-9223372036854775808~9223372036854775807
double8881.7E+10的负308次⽅~1.7E+10的正308次⽅
float4443.4E+10的负38次⽅~3.4E+10的38次⽅
long double10/1210/16有效位10字节。32位为了对齐实际分配12字节;64位分配16字节
指针248/

2、大端存储和小段存储:

大端存储模式:数据的低位保存在内存中的高地址中,数据的高位保存在内存中的低地址中。
小段存储模式:数据的低位保存在内存中的低地址中,数据的高位保存在内存中的高地址中。
0x12345678为例:
大端存储方式:

地址:   0x00  0x01  0x02  0x03+-----+-----+-----+-----+
数据:  | 12  | 34  | 56  | 78  |+-----+-----+-----+-----+

小端存储方式:

地址:   0x00  0x01  0x02  0x03+-----+-----+-----+-----+
数据:  | 78  | 56  | 34  | 12  |+-----+-----+-----+-----+

注:在每个字节中,高位在左,低位在右。
使用C语言判断大端存储还是小端存储:

int main() {int a = 1;char* p = (char*) & a;//char* -- 访问一个字节(第一个地址)if (*p == 1){printf("小端\n");}else{printf("大端\n");}return 0;
}

在这里插入图片描述

http://www.lryc.cn/news/338529.html

相关文章:

  • 关注招聘 关注招聘 关注招聘
  • Django框架设计原理
  • Linux ARM平台开发系列讲解(QEMU篇) 1.2 新添加一个Linux kernel设备树
  • OSPF动态路由实验(思科)
  • MyBatis 等类似的 XML 映射文件中,当传入的参数为空字符串时,<if> 标签可能会导致 SQL 语句中的条件判断出现意外结果。
  • git的安装
  • 蓝桥杯嵌入式模板(cubemxkeil5)
  • ELFK (Filebeat+ELK)日志分析系统
  • HttpClient、OKhttp、RestTemplate接口调用对比( Java HTTP 客户端)
  • [旅游] 景区排队上厕所
  • 三 maven的依赖管理
  • iperf3 网络性能测试
  • 08 Php学习:if语句、Switch语句
  • 二分查找的边界问题是怎么产生的?
  • 华为 2024 届校园招聘-硬件通⽤/单板开发——第十套
  • 五子棋:不会下五子棋也没关系,会用Java写五子棋就行
  • 【VUE】使用Vue和CSS动画创建滚动列表
  • 分布式结构化数据表Bigtable
  • langchain 加载 csv,json
  • Java-常见面试题收集(十三)
  • 第二证券策略:股指预计维持震荡格局 关注汽车、工程机械等板块
  • hcia datacom课程学习(6):路由与路由表基础
  • AI PC元年,华为的一张航海图、一艘渡轮和一张船票
  • NAT技术
  • 新能源汽车“价格战”之后,充电桩主板市场将会怎样?
  • appium driver install uiautomator2 安装失败
  • 学浪已购买视频怎么下载到本地?
  • k8s-pod设置执行优先级
  • const修饰指针
  • php关于序列化r的指向