数据在内存中的存储方式

news2024/9/24 3:22:13

前言:

期末临近,继续复习!

今天要复习的内容是数据在内存中的存储,主要是整型与浮点两种,还有大小端的介绍。

提出问题

7ebe3613f1304b5bbff7dcae0851080d.png

打印结果是255            -1

为什么?

首先我们要知道数据都是以二进制的形式存储于计算机中的,而不同的类型在不同平台下占用的空间大小也不一样,具体可看下图

76040534a5784efd87059fae508567d8.png

数据来源http://t.csdnimg.cn/2gnJv

在此基础上我们还要知道整数默认是4个字节,小数是8个字节

整数在内存中以补码形式存在

-1:11111111 11111111 11111111 11111111

把-1赋值给char类型的a,会发生截断,之后后八位被存进去了

a:11111111

同理,b:11111111

在打印的时候是以%d打印的,因此a,b要发生整形提升,a作为无符号数提升后为00000000 00000000 00000000 11111111

b作为有符号数变为11111111 11111111 11111111 11111111

这些都是补码,被读取后一个数255,一个是-1

在此基础上我们对char进一步分析,他可以存的数有以下这些

86f00ae8373942219c8a93b952a0c0bc.jpeg

 

对于有符号char来说他的范围是-128到127

对于无符号char来说它的范围是0到255,都是存了256个不同的数,而且当你存的数字超过他的范围时,就会开始循环了如下图所示

cf8136101c00421ba71101da36d8ac27.jpg

 举个例子,对于无符号数255,他的补码是11111111

那么你存一个无符号256此时存进去的就是00000000,每次循环就是256个数,具体顺序就是上图。

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1365064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能的核心依然是哲学的三个基本问题

智能的发展与哲学的三个基本问题密切相关,作为一个复杂领域,智能涉及到人类认知和行为的模拟与复制,因而也会涉及到哲学的核心问题。 存在论:智能的存在论问题涉及到什么是智能以及智能系统的本质。这包括对于意识、思维和自主性的…

酷雷曼精彩亮相CMC 2023中国元宇宙大会,助力云上VR直播

12月23日,2023中关村论坛系列活动——CMC 2023中国元宇宙大会在石景山首钢园冰壶馆成功举办。酷雷曼VR作为元宇宙领域代表企业之一受邀出席会议,分享元宇宙技术研发成果及应用方案,并为大会提供VR直播技术支持。 大咖云集,共商元宇…

js逆向第13例:猿人学第6题js混淆-回溯赛

文章目录 m是加密字符串怎么来的?浏览器环境检测本地运行的js代码任务六:采集全部5页的彩票数据,计算全部中奖的总金额(包含一、二、三等奖) 此题总体难度低于第5题,老规矩还是查看控制台请求地址https://match.yuanrenxue.cn/api/match/6?m=rPRDgpbV3Wd%252FyPfURQAkxK…

Vue知识总结-中

VUE-生命周期 生命周期概述 生命周期也常常被称为生命周期回调函数/生命周期函数/生命周期钩子生命周期是Vue在关键时刻帮我们调用的一些特殊名称的函数生命周期函数的名字不能更改,但函数的具体内容是由我们程序员自己编写的生命周期函数中的this指向是vm或组件实例对象 生命周…

[VUE]5-TypeScript

目录 1 TypeScript 介绍2、安装3、快速上手4、TypeScript 常用类型4.1 类型标注的位置4.2 字符串、数字、布尔类型4.3 字面量类型4.4 ⭐interface 类型4.5 class 类型 ​🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,…

【Leetcode】移除后集合的最多元素数

目录 💡题目描述 💡思路 💡总结 100150. 移除后集合的最多元素数 💡题目描述 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,它们的长度都是偶数 n 。 你必须从 nums1 中移除 n / 2 个元素,同时从 …

江科大STM32

目录 STM32简介 STM32简介 我们主要学习的就是STM32的外设。 NVIC:内核里面用于管理中断的设备,比如配置中断优先级这些东西SysTick:内核里面的定时器,主要用来给操作系统提供定时服务的,STM32是可以加入操作系统的&am…

SSD固态硬盘数据修复方案介绍

这么多故障的可能,那么固态硬盘SSD的数据修复,到底是否有办法呢?我们这里介绍两种尝试修复的方式,不能保证一定会成功。在你误删除一些文件的时候,可以尝试下,市场也有也有很多的修复软件。 方式1:采用修复…

【软件测试】概述

《软件缺陷》 定义 (从产品内部看)软件产品开发或维护过程中存在的错误、毛病等各种问题(从产品外部看)系统所需要实现的某种功能的失效或违背 表现形式(1) 软件没有实现产品规格说明所要求的功能模块(2) 软件中出现了产品规格说…

[ffmpeg系列 03] 文件、流地址(视频)解码为YUV

一 代码 ffmpeg版本5.1.2,dll是:ffmpeg-5.1.2-full_build-shared。x64的。 文件、流地址对使用者来说是一样。 流地址(RTMP、HTTP-FLV、RTSP等):信令完成后,才进行音视频传输。信令包括音视频格式、参数等协商。 接流的在实际…

day10 用栈实现队列 用队列实现栈

题目1:232 用栈实现队列 题目链接:232 用栈实现队列 题意 用两个栈实现先入先出队列(一个入栈,一个出栈),实现如下功能: 1)push:将元素x推到队列末尾 2)…

MyBatisPlus-基本配置与常见应用

MyBatisPlus 一、快速入门 MyBatis Plus是基于MyBatis的增强工具,提供了更简单、更便捷的方式来操作数据库。它是一个功能丰富的ORM(对象关系映射)框架,可以帮助开发人员更快速地进行数据库操作。 MyBatis Plus的主要特点如下&…

【知识点】:ECMAScript简介及特性

一.简介 什么是ECMAScript? ECMAScript是由网景的布兰登艾奇开发的一种脚本语言的标准化规范;最初命名为Mocha,后来改名为LiveScript,最后重命名为JavaScript。1995年12月,升阳与网景联合发表了JavaScript。1996年11月…

华为HarmonyOS 创建第一个鸿蒙应用 运行Hello World

使用DevEco Studio创建第一个项目 Hello World 1.创建项目 创建第一个项目,命名为HelloWorld,点击Finish 选择Empty Ability模板,点击Next Hello World 项目已经成功创建,接来下看看效果 2.预览 Hello World 点击右侧的预…

K8s-应用数据

应用数据 1 应用数据解析 k8s应用数据类型和步骤解析 k8s如何使用数据功能 k8s使用各种数据类型的配置 2 应用数据实践 emptyDir实践 资源对象文件内容 apiVersion: v1 kind: Pod metadata:name: sswang-emptydir spec:containers:- name: nginx-webimage: kubernetes-reg…

操作系统内存碎片

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com,github地址为https://github.com/jintongxu。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。 一、前言 内存碎片是指无法被利用的内…

C# 关于反射的简单示例

写在前面 在日常开发中,我们经常使用反射来动态获取关于类的信息,或者是动态给类实例成员赋值;反射提供了封装程序集、模块和类型的对象(Type 类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象…

关闭stp环路的实验演示

在日常的网络规划设计中,为了提高网络的可靠性,通常会采取链路冗余,但是会导致网络中形成环路。有的小伙伴就会发问了,明明增加了链路,网络的可靠性不仅没有提高,怎么反而导致了通信异常呢? 拓…

如何使用csdn中的c知道进行学习?

1.c知道 猜测是通过chatgpt训练链接到CSDN内部的文章内容等,进行生成的一款应用。 2.如何使用呢 打比方说,我想学习下多目标跟踪中的ukf,那么就可以输入这个关键字。 那既然是学习,就要进一步深究,有三种方式&#…

nacos server控制台打开页面空白

总结一下最近遇到的一个纠结很久的坑;通过docker的方式部署nacos server在服务器,部署启动一切正常,然后通过safari浏览器打开控制台的时候页面空白,只有一个标题;打开控制台报错:Failed to load resource:…