字符型在内存中的存储

由于此字符型只占一个字节 所以它就不存在大端存储和小端存储。

字符型数据在内存中的存储的是ASCII码值转换成的二进制的补码(有符号char的二进制也有原码,反码,补码之分)

↑的十进制的ASCII值为24

 

转换成二进制为00011000

 

所以↑在内存中存储的就是00011000

 

虽然数据在内存中都是以二进制的方式进行存储的,但是为了便于观察,显示的时候一般显示的是数据二进制转换成的十六进制

 

例如下图的调试中对内存的监视

2d3fcad472b344e98697b6554ee146d4.png

 上图的是小端存储,所以01,02等在开头

 

 

字符型数据分为有符号char(signed char)

 

 

和无符号char(unsigned char)

 

有符号char的8个比特位中

 

最高位(最左端的那一位)为符号位,符号位只表示正负(0为正,1为负)不存储数据

 

 

且有符号char在内存中存储的10000000被规定为是—128\n\n上面说了:

 

有符号char的二进制也要原码,反码,补码之分\n\n所以有符号char(signed char)

 

在内存中存储的11111111其实存储的是—1

 

 

因为—1的原码为10000001

 

反码为11111110

 

补码(等于反码+1)为11111111

 

而内存中存储的都是补码

 

 

所以有符号char的在内存中取值范围为10000000~01111111

 

换算成十进制就是—128~127

 

无符号char最高位(最左端的那一位)不为符号位,可以存储数据

 

且无符号数的原码,反码,补码相同

 

所以无符号char(unsigned char)

 

在内存中取值范围为00000000~11111111

 

换算成十进制为0~255

 

char,int,short int类型的值的加减其实是一个循环。

 

 

如下图是char类型的

f5a7113c3ec4495e92ffbe78bb5a20f0.png

 也就是说0~127之间+1就是实实在在的加了个1,如2+1=3

 

但当127+1就会变成—128

 

如果—128一直加1也最终会变成0,然后再循环

 

short,int类型的取值也类似

 

如下图

407a43dcb7b241f0bf0318f9c2541bf6.png

这一知识点在整型提升中有很大的作用

 

单独的一个char不标明是否有符号时,char是否有符号取决于编译器

 

那么怎么判断自己的电脑用的编译器char是有符号还是无符号的呢?

 

很简单只需简单的做个对比就行

 

如下图

e83d02b4e146428e8bf4e87e272f1f33.png

 

 所以我的电脑的编译器中只写char时char是有符号的

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

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

相关文章

docker里Java服务执行ping命令模拟流式输出

文章目录 业务场景处理解决实现ping功能并实时返回输出实现长ping和中断请求docker容器找不到ping命令处理 业务场景 我们某市的客户,一直使用CS版本的信控平台,直接安装客户Windows server服务器上,主要对信号机设备进行在线管理、方案配时…

GORM 介绍及快速入门

GORM 介绍及快速入门 前言 GORM 是一个用 GoLang 语言编写的 ORM(对象关系映射)库。它被设计为开发者友好的方式来进行数据库操作。GORM 提供了一种高级的 API 来处理数据库的 CRUD(创建、读取、更新、删除)操作,它支…

Android Google 开机向导定制 setup wizard

Android 开机向导定制 采用 rro_overlays 机制来定制开机向导,定制文件如下: GmsSampleIntegrationOverlay$ tree . ├── Android.bp ├── AndroidManifest.xml └── res └── raw ├── wizard_script_common_flow.xml ├── wizard_script…

Peter:经济形势不好,一个最大的原因就是诚信道德的缺失 | 程客有话说002

《程客有话说》是我们最新推出的一个访谈栏目,邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事,我们尝试建立一个程序员交流与学习的平台,也欢迎大家推荐朋友或自己来参加我们的节目,一起加油。本期我们邀请的程序…

实验一 安装和使用Oracle数据库

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…

vue同一个浏览器登录不同账号数据覆盖问题解决

同一个浏览器登录不同账号session一致,这就导致后面登录的用户数据会把前面登录的用户数据覆盖掉,这个问题很常见,当前我这边解决的就是同一个浏览器不同窗口只能登录一个用户,解决方案如下: 1、在App.vue中监听本地数…

基于人工蚁群、蚁群、遗传算法的多目标任务分配

matlab2020a可运行 基于人工蚁群、蚁群、遗传算法的多目标任务分配资源-CSDN文库

MAC磁盘空间不足怎么清理?MAC清理磁盘空间的五种方法

MAC磁盘空间不足怎么清理?当我们使用苹果MAC一段时间后,就会有大量的垃圾文件占用磁盘空间,例如系统缓存文件、应用程序缓存文件、备份和重复文件、旧版的应用程序及其部件等,为了不影响电脑的后续使用,我们需要经常清…

对java的interface的理解

一个例子来让我们理解更加深刻 这是我们的整体文件布局 ①A是接口 ②B和C是用来实现接口的类 ③show是我们的运行函数,用来展示 A接口 接口中定义的方法可以不用去实现,用其他类去实现(必须实现) 关键字:interface public interface A { // public static …

恭喜所有纺织人,你最想要的小程序来了

随着互联网的普及和电子商务的快速发展,越来越多的商家开始涉足线上销售。而小程序商城作为一种轻量级的应用程序,正逐渐成为商家们热衷选择的销售平台。本文将通过实用指南的形式,为商家们详细介绍如何通过乔拓云网后台,自助搭建…

华为OD机试真题-文件缓存系统-2023年OD统一考试(C卷)

题目描述: 请设计一个文件缓存系统,该文件缓存系统可以指定缓存的最大值(单位为字节)。 文件缓存系统有两种操作:存储文件(put)和读取文件(get) 操作命令为put fileName fileSize或者get fileName 存储文件是把文件放入文件缓存系统中;读取文件是从文件缓存系统中访问已存…

C语言:预处理详解

创作不易,来个三连呗! 一、预定义符号 C语⾔设置了⼀些预定义符号,可以直接使⽤,预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇期 __TIME__ //⽂件被编…

【前后端的那些事】评论功能实现

文章目录 聊天模块1. 数据库表2. 后端初始化2.1 controller2.2 service2.3 dao2.4 mapper 3. 前端初始化3.1 路由创建3.2 目录创建3.3 tailwindCSS安装 4. tailwindUI5. 前端代码编写 前言:最近写项目,发现了一些很有意思的功能,想写文章&…

最新 生成pdf文字和表格

生成pdf文字和表格 先看效果 介绍 java项目&#xff0c;使用apache的pdfbox工具&#xff0c;可分页&#xff0c;自定义列 依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.22<…

css 前端实现通过css动画实现进度条动态加载效果

效果图 代码 CommonProcess.vue 进度条动态加载组件代码 <!-- 进度条组件 --> <template><div class"common_process"><div v-for"(item, index) in dataList" :key"processType index" class"common_process_item…

Python实现如何在抛出异常时,页面截图保存在本地

方法一&#xff1a;使用 Selenium 操作网页 在使用 Selenium 操作网页时&#xff0c;可以通过捕获异常的方式来处理错误&#xff0c;并通过截图来记录错误现场。下面是使用 Python 和 Selenium 的示例代码&#xff1a; from selenium import webdriver import traceback# 创建…

SPI传感器接口设计与优化:基于STM32的实践

SPI&#xff08;串行外设接口&#xff09;是一种常用的串行通信协议&#xff0c;用于在微控制器和外部设备之间进行全双工的高速数据传输。在本文中&#xff0c;我们将探讨如何基于STM32微控制器设计和优化SPI传感器接口&#xff0c;并提供相应的代码示例。 1. SPI传感器接口设…

首届PolarDB开发者大会在京举办,阿里云李飞飞:云数据库加速迈向智能化

1月17日&#xff0c;阿里云PolarDB开发者大会在京举办&#xff0c;中国首款自研云原生数据库PolarDB发布“三层分离”新版本&#xff0c;基于智能决策实现查询性能10倍提升、节省50%成本。此外&#xff0c;阿里云全新推出数据库场景体验馆、训练营等系列新举措&#xff0c;广大…

【openwrt】【overlayfs】Openwrt系统overlayfs挂载流程

overlayfs是一种叠加文件系统&#xff0c;在openwrt和安卓系统中都有很广泛的应用&#xff0c;overlayfs通常用于将只读根文件系统(rootfs)和可写文件系统(jffs2)进行叠加后形成一个新的文件系统&#xff0c;这个新的文件系统“看起来”是可读写的&#xff0c;这种做法的好处是…

汽车美容行业研究:预计2029年将达到127亿美元

车体保养又习惯称汽车美容。主要目的是清除车体外和车体内的各种氧化和腐蚀&#xff0c;污染物等。然后加以保护&#xff0c;尽量突出车的“美”。它主要包括&#xff1a;车漆保养&#xff0c;内饰保养&#xff0c;电镀加工保养&#xff0c;皮革塑料保养&#xff0c;轮胎、轮毂…