首页 > 其他分享 >C进阶(数据存储)

C进阶(数据存储)

时间:2023-09-05 22:02:30浏览次数:40  
标签:存储 0000 进阶 补码 1111 内存 数据 原码

空类型

void 表示空类型(无类型)

通常应用于函数的返回类型、函数的参数、指针类型

大小端存储模式(使用代码段判断大小端)

大端存储 

数据的低位保存在内存的高地址中,而数据高位,保存在内存低地址中

小端存储

数据的低位保存在内存的低地址中,而数据高位,保存在内存高地址中

补码反码原码

三种表示方法均有符号位和数值位两部分,符号位用0表示“正”,用1表示“负”,而数值位三种表示方法各不相同

原码

直接将二进制按照正负数的形式翻译成二进制。

反码

将原码的符号位不变,其他位依次按位取反得到。

补码

反码+1得到补码。

对于整形来说:数据存放内存中其实存放的是补码

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理; 同时,加法和减法也可以统一处理(CP U只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需 要额外的硬件电路。(分析 整数20与-10的存放地址)

#include<stdio.h>
int main()
{
	int a=20;    
  //  0000 0000 0000 0000 0000 0000 0001 0100 原反补
  //  0     0     0    0    0    0    1    4 存放的空间地址(大端存储)
  int b=-10;
  // 1000 0000 0000 0000 0000 0000 0000 1010  原码
  // 1111 1111 1111 1111 1111 1111 1111 0101  反码
  // 1111 1111 1111 1111 1111 1111 1111 0110  补码  
  //  f    f    f   f     f    f     f    6(大端存储)
}
浮点数存储 /

  1.  浮点数如何化为2进制

小数部分乘2取整。 在内存中的存储形式是如何的

整数部分直接化为2进制

补充:char类型中的"0"代表"\0"



标签:存储,0000,进阶,补码,1111,内存,数据,原码
From: https://blog.51cto.com/u_16192117/7380265

相关文章

  • openGauss学习笔记-61 openGauss 数据库管理-常见主备部署方案
    openGauss学习笔记-61openGauss数据库管理-常见主备部署方案61.1单中心图1单中心部署图组网特点:单AZ部署,可以配置一个同步备一个异步备优势:三个node完全等价,故障任意一个node都可以提供服务;成本低。劣势:高可用能力较低,发生AZ级故障只能依赖节点恢复;适用性:适用于......
  • Mybatisplus中如何使用databaseId来适配多种数据库
    Mybatisplus中如何使用databaseId来适配多种数据库当使用MyBatisPlus进行数据库访问时,我们可能会面临多数据库的情况,例如在同一个应用程序中同时使用MySQL和Oracle。在这种情况下,我们需要根据当前的数据库环境来选择执行相应的SQL语句。MyBatisPlus提供了一个名为databaseId的特......
  • 第02章-存储和压缩格式
    目录第02章存储和压缩格式22.1存储和压缩格式对比22.2查询效果测试32.3查询效果测试带shuffle3第02章存储和压缩格式存储和压缩格式简介SparkSQL表存储的数据量都特别大,因此存储格式要考虑查询性能写入性能和存储成本。而orc存储格式是一种列式存储,在查询写入时比较快,而......
  • MySQL数据库
    上篇文章写了如何用部署Docker、Docker安装MySQL、MySQL语句创建数据库和数据库表,还有一些对数据库的基本命令,本篇内容主要写MySQL语句对数据库中的表的记录(数据)命令添加表中新字段ALTERTABLE表名ADD列名数据类型(范围);修改表中新字段ALTERTABLEtbl_nameCHANGE旧列名新......
  • 剑指 Offer 41. 数据流中的中位数
    如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4]的中位数是3[2,3]的中位数是(2+3)/2=2.5设计一个支持以下两......
  • C进阶(指针)
    一维数组传参的几种形式(5种)voidtest(intarr[])//{}voidtest(intarr[10])//{}voidtest(int*arr)//{}voidtest2(int*arr[20])//{}voidtest2(int**arr)//{}intmain(){intarr[10]={0};int*arr2[20]={0};test(arr);test2(arr2);}二维数组传参的几......
  • 数据链路层设备-网卡和网桥
    数据链路层的设备有:网卡、网桥、交换机1网卡网卡(网络接口卡)网卡工作在数据链路层和物理层。其作用是将数据链路层的以太网报文变换成高低电平传输到物理层;将物理层到达的高低电平信号传输到数据链路层,数据链路层再进行以太网报文的组装。2网桥网桥是连接两个局域网的存......
  • 数据结构代码题-链表
    链表单链表单链表结构体的声明:typedefstructLink{ intdata;//代表数据域 structLink*next;//代表指针域,指向直接后继元素}link;//link为节点名,每个结点都是一个link结构体另一种:typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*Link......
  • 【坑】VUE中动态数据使用 wow.js 没效果的问题
    一般来说正常使用都是在mounted函数中mounted(){this.$nextTick(()=>{this.$wow.init()})}这样如果是死数据是可以正常出现效果的但是如果是请求回来的数据是没有效果的需要改一下生成时机  此处的newList即为请求的数据watch:{newsl......
  • 关于在数据库系统MMAP的使用
    问题引出在数据库系统中对于文件I/O管理,通常有两种选择开发者自己实现bufferbool来管理文件I/O读入内存的数据使用Linux操作系统实现的MMAP系统调用映射到用户地址空间,并且利用对开发者透明的pagecache来实现页面的换入换出理论介绍 程序调用MMAP返回了指向文件内容......