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

「C语言进阶」数据内存的存储

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀

 

目录

🐰数据类型的介绍

🐰类型的意义

🐰数据类型的基本归类

🌸整形家族:

🌸浮点型家族:

🌸构造类型:

🐰整形在内存中的存储

🐰大小端

🐰关于有无符号字符类型和整形提升的经典题型


🐰数据类型的介绍

内置类型:

char        字符型        1字节

short       短整形        2字节

int            整形            4字节

long         长整形        8字节

long long更长整形     8字节

float         单精度浮点型        4字节

double     双精度浮点型        8字节

🐰类型的意义

1.使用这个类型开辟内存空间的大小

2.如何看待内存的视角

🐰数据类型的基本归类

🌸整形家族:

字符存储和表示的时候本质上使用的是ASCII值,ASCII值是整数,字符类型也归类到整形家族

char:

    unsigned charsigned char

C语言并没有规定char就是 unsigned char,取决于编译器(一般char就是 unsigned char)

short:

    unsigned short [int](int可以省略)signed short [int](int可以省略)

int :

 

   unsigned int signed int 

long :

  unsigned long[int](int可以省略)signed long[int](int可以省略)

 

🌸浮点型家族:

float

double

以后会详细解读浮点型

🌸构造类型:

数组类型

int arr[10]的类型int [10],因此数组类型很多,又称自定义类型

结构体类型

struct 关键字

枚举类型

enum 关键字

联合类型

unio 关键字

指针类型

int* pi
char* pc
float* pf
void* pv

*空类型

void表示空类型,通常用于函数的返回类型、函数参数、指针类型

🐰整形在内存中的存储

一个变量的创建是需要开辟一段空间

原码,反码,补码

整数的二进制有三种表示形式:原码,反码,补码

三种表示形式都有符号位和数值位,符号位用0表示“正”,1表示“负”,而数值位正数的原、反、补都相同,

负数的原码,负数的反码就是在原码基础上符号位不变,数值位按位取反,负数反码+1就是补码

int a=20

00000000000000000000000000010100原码

00000000000000000000000000010100反码

00000000000000000000000000010100补码

int b=-20

10000000000000000000000000010100原码

111111111111111111111111111111111111101011反码

111111111111111111111111111111111111101100补码

注:对于整形来说:数据存放在内存中的其实是补码
int a=1;
补码:00000000000000000000000000000001
int b=-1;
原码:10000000000000000000000000000001
反码:1111111111111111111111111111111111111111110
补码:1111111111111111111111111111111111111111111
int c=a+b
c的补码:100000000000000000000000000000000(这里是33位,但是只能存储32位,所以高位1,丢弃)
则c的补码:00000000000000000000000000000000
所以c的原码:00000000000000000000000000000000

🐰大小端

含义:

大端字节序:把一个数据的低字节的数据,存放在高地址处,把高字节的数据,存放在低地址

小端字节序:把一个数据的低字节的数据,存放在低地址处,把高字节的数据,存放在高地址

百度2015年工程师测试题

设计一个函数去判断大小端

#include<stdio.h>
int check_sys()
{int a=0x01223302;return *(char*)&a;
}
int main()
{if(check_sys()==2){printf("小端\n");}else{printf("大端\n");}
}

🐰关于有无符号字符类型和整形提升的经典题型

int main()
{char a=-1;-1:原码:10000000000000000000000000000001反码 :11111111111111111111111111111110补码 :11111111111111111111111111111111a:发生截断补码:11111111signed char b=-1;unsigned char c=-1;  c:发生截断补码:11111111(这里的最高位不是符号位)printf(“a=%d b=%d c=%d”,a,b,c);a:发生整形提升原来的补码:11111111现在的补码:11111111111111111111111111111111现在的反码:11111111111111111111111111111110现在的原码:10000000000000000000000000000001所以a的值为-1c:发生整形提升原来的补码:11111111现在的补码:00000000000000000000000011111111现在的原码:00000000000000000000000011111111所以c的值为255
注意:这里的a与b是一样的,如果发生整形提升的时候,如果是有符号数,高位补符号位,如果是无符号数,高位补0(这都是针对补码)
}
字符类型变量取值范围(补码)
标题

 有符号char类型变量的取值范围:-128(补码10000000)~127

无符号char类型变量的取值范围:0~255

 🌸🌸🌸如果大家还有不懂或者建议都可以发在评论区,我们共同探讨,共同学习,共同进步。谢谢大家! 🌸🌸🌸    

相关文章:

「C语言进阶」数据内存的存储

&#x1f680;&#x1f680;&#x1f680;大家觉不错的话&#xff0c;就恳求大家点点关注&#xff0c;点点小爱心&#xff0c;指点指点&#x1f680;&#x1f680;&#x1f680; 目录 &#x1f430;数据类型的介绍 &#x1f430;类型的意义 &#x1f430;数据类型的基本归类…...

面试必问:进程和线程的区别(从操作系统层次理解)

1.什么是进程&#xff1f;为什么要有进程&#xff1f; 进程有一个相当精简的解释&#xff1a;进程是对操作系统上正在运行程序的一个抽象。 这个概念确实挺抽象&#xff0c;仔细想想却也挺精准。 我们平常使用计算机&#xff0c;都会在同一时间做许多事&#xff0c;比如边看…...

ModuleNotFoundError: No module named ‘apex‘与 error: legacy-install-failure

ModuleNotFoundError: No module named ‘apex’ ModuleNotFoundError: No module named apex 表示 Python 在搜索模块时无法找到名为 apex 的模块。这通常是因为您没有安装 apex 模块或安装不正确。 apex 是一个针对混合精度训练和优化的 PyTorch 扩展库&#xff0c;您可以通过…...

Python3 VScode 配置

Python3 VScode 配置 在上一章节中我们已经安装了 Python 的环境&#xff0c;本章节我们将介绍 Python VScode 的配置。 准备工作&#xff1a; 安装 VS Code 安装 VS Code Python 扩展 安装 Python 3 安装 VS Code VSCode&#xff08;全称&#xff1a;Visual Studio Code&…...

VMware 修复了三个身份认证绕过漏洞

Bleeping Computer 网站披露&#xff0c;VMware 近期发布了安全更新&#xff0c;以解决 Workspace ONE Assist 解决方案中的三个严重漏洞&#xff0c;分别追踪为 CVE-2022-31685&#xff08;认证绕过&#xff09;、CVE-2022-31686 &#xff08;认证方法失败&#xff09;和 CVE-…...

实现一个简单的Database10(译文)

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。作者&#xff1a; 花家舍文章来源&#xff1a;GreatSQL社区原创 前文回顾 实现一个简单的Database系列 译注&#xff1a;csta…...

CTF-取证题目解析-提供环境

一、安装 官网下载&#xff1a;Volatility 2.6 Release 1、将windows下载的volatility上传到 kali/home 文件夹里面 3、将home/kali/vol刚刚上传的 移动到use/sbin目录里面 mv volatility usr/local/sbin/ 切换到里面 cd /usr/local/sbin/volatility 输入配置环境echo $PAT…...

计算机基础 | 网络篇 | TCP/IP 四层模型

前沿&#xff1a;撰写博客的目的是为了再刷时回顾和进一步完善&#xff0c;其次才是以教为学&#xff0c;所以如果有些博客写的较简陋&#xff0c;是为了保持进度不得已而为之&#xff0c;还请大家多多见谅。 一、OSI 七层模型 参考文章&#xff1a;OSI 和 TCP/IP 网络分层模型…...

实时数据仓库

1 为什么选择kafka? ① 实时写入&#xff0c;实时读取 ② 消息队列适合&#xff0c;其他数据库受不了 2 ods层 1&#xff09;存储原始数据 埋点的行为数据 (topic &#xff1a;ods_base_log) 业务数据 (topic &#xff1a;ods_base_db) 2&#xff09;业务数据的有序性&#x…...

leetcode 1250. 检查「好数组」

给你一个正整数数组 nums&#xff0c;你需要从中任选一些子集&#xff0c;然后将子集中每一个数乘以一个 任意整数&#xff0c;并求出他们的和。 假如该和结果为 1&#xff0c;那么原数组就是一个「好数组」&#xff0c;则返回 True&#xff1b;否则请返回 False。 示例 1&…...

JDK动态代理和CGLib动态代理的区别

原文网址&#xff1a;JDK动态代理和CGLib动态代理的区别_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java中JDK动态代理和CGLib动态代理的区别。 区别概述 项 JDK动态代理 CGLIB动态代理 接口是否需实现 只能代理实现了接口的类。 可以代理没有实现接口的类。 原理 继承…...

Leetcode.1250 检查「好数组」

题目链接 Leetcode.1250 检查「好数组」 Rating &#xff1a; 1983 题目描述 给你一个正整数数组 nums&#xff0c;你需要从中任选一些子集&#xff0c;然后将子集中每一个数乘以一个 任意整数&#xff0c;并求出他们的和。 假如该和结果为 1&#xff0c;那么原数组就是一个「…...

WMS系统推荐,如何选到适合企业的仓库管理系统

市场上有很多WMS系统&#xff0c;但是现在很多仓库管理系统都在使用WMS系统。那么在选择WMS系统时应该考虑什么呢&#xff1f;明确业务发展特征&#xff0c;准确表达能力目标许多物流企业在选择物流管理系统时&#xff0c;往往会被物流管理系统的整体系统所迷惑&#xff0c;在功…...

C语言的期末复习

&#x1f308;博客主页&#xff1a;卿云阁 &#x1f48c;欢迎关注&#x1f389;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f31f;本文由卿云阁原创&#xff01; &#x1f64f;作者水平很有限&#xff0c;如果发现错误&#xff0c;请留言轰炸哦&#xff01;万分感谢&a…...

强化学习之DQN论文介绍

强化学习之DQN论文介绍DQN摘要介绍问题特点经验回放相关工作实验算法流程结论DQN 摘要 1.基于Q-learning从高维输入学习到控制策略的卷积神经网络。 2.输入是像素&#xff0c;输出是奖励函数。 3.主要训练、学习Atari 2600游戏&#xff0c;在6款游戏中3款超越人类专家。 介绍 …...

使用luaBridge添加自己的C++脚本插件能力

概述 如果我们有一个应用需要频繁的更改业务逻辑,但是基础功能不变,那么我们可以将基础功能作为底层接口,上层的功能按照脚本方式来编写。很多插件都这样的原理,比如我们的浏览器的JS就这样,小程序也是这样的原理,我们使用C++也很容易实现这样的功能。 lua是最小最精致的…...

再拾起博客

一切要从去年12月27日被裁员的那天说起。 那天是星期二&#xff0c;和平常一样&#xff0c;8点20的闹钟响起&#xff0c;但我习惯性的磨蹭到8点40起床&#xff0c;洗漱完成后9点过几分出门&#xff0c;骑车20多分钟几乎是踩点到的公司&#xff0c;正当我坐在工位准备平复心情切…...

Mybatis流式游标查询-大数据DB查询OOM查询问题

问题场景Mysql数据处理类型分以下三种com.mysql.cj.protocol.a.result.ResultsetRowsStatic&#xff1a;普通查询&#xff0c;将结果集一次性全部拉取到内存com.mysql.cj.protocol.a.result.ResultsetRowsCursor&#xff1a;游标查询&#xff0c;将结果集分批拉取到内存&#x…...

以before为例 完成一个aop代理强化方法案例

观看本文 首先 您需要做好Spring aop的准备工作 具体可以参考我的文章 java Spring aop入门准备工作 首先 我们创建一个包 我这里叫 Aop 然后在Aop包下创建一个类 叫 User 参考代码如下 package Aop;public class User {public void add(){System.out.println("add....…...

好记性不如烂笔头之Java基础复习笔记

未完待续。。。 代码块先于构造方法执行&#xff0c;不管类中有多少个代码块&#xff0c;都会先将所有代码块执行完再执行构造方法和其他方法。类中如果没有自定义的构造方法&#xff0c;那么JVM会提供默认的无参构造方法&#xff1b;如果类中有自定义的构造方法&#xff0c;那…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...