整数在内存中的存储(c语言)

news2024/9/27 21:28:57

1.原码 反码 补码(以及他们之间的转换)

当一个数为正数的时候,不存在原码反码补码的差别,也就是一样的;

当一个数为负数的时候,以-1为例子,对这个过程进行讲解。

1000 0000 0000 0000 0000 0000 0000 0001    原码(实际我们看到的)

1111 1111 1111 1111 1111 1111  1111 1110  反码,(符号位不变也就是最左边的那个,其余的把原码中为0的变为1,1的变为0)

1111 1111 1111 1111 1111 1111  1111 1111  补码=反码+1 (补码也就是计算机中存储和表示的形式,通过这样存储后去进行计算能解决原码没办法进行负数计算的弊端,也能解决跨0运算的问题(会算两次0))(别人的图,这个图描述了如果只进行取反码会出现的漏洞)

当要转换回去的时候,先对补码 -1 得到反码 ,再变0为1,变1为0。


2.对几个例题进行解析

 2.1 

      char a=-1;

      signed char a1 = -1;

      unsigned char a2=-1;

      printf("%d %d %d",a,a1,a2);

    由上面的举例已经知道 -1的补码是

1111 1111 1111 1111 1111 1111  1111 1111 

但是因为是char 所以会发生截断,最后保留的就是1111 1111;%d打印的是有符号的整型(需要进行整型提升,并打印出原码),因为char 和signed char(在vs上)是一样的,都是补符号位,既仍然是 1111 1111 1111 1111 1111 1111  1111 1111 ,所以都仍然是为-1;但是unsigned char是无符号整型,高位是补0的,所以就变为了0000 0000 0000 0000 0000 0000 1111 1111,也就是255;

2.2

char  a=-128;

printf("%u",a);

1000 0000 0000 0000 0000 0000 1000 0000

1111 1111  1111 1111 1111 1111 0111 1111

1111 1111  1111 1111 1111 1111 1000 0000

一开始还是一样发生截断,剩下的是1000 0000(在内存中)由于要发生整数提升,他又是有符号的char,所以整型提升后就是上面的补码;

%u打印的是无符号的整型(同样需要进行整型提升) 但是没有了原反补的概念,所以直接现在的补码就是原码,最终打印的就是1111 1111  1111 1111 1111 1111 1000 0000,不再需要转换为原码;

2.3

char  a=128;

printf("%u",a);

当a为128,跟2.2同样的过程,你会发现128和-128用 %u打印的时候结果都是一样的;


3.对char取值的变化过程进行作图展示

   

 

结合上面那个图就能知道char的取值变化实际上就是一个圆形(-128~127)

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

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

相关文章

多路复用IO

一。进程处理多路IO请求 在没有多路复用IO之前,对于多路IO请求,一般只有阻塞与非阻塞IO两种方式 1.1 阻塞IO 需要结合多进程/多线程,每个进程/线程处理一路IO 缺点:客户端越多,需要创建的进程/线程越多&#xff0c…

python 图片加文字 文字自动上下左右居中 自动换行居中对齐

一.实现效果展示 二.代码 # -*- coding: utf-8 -*- # Time : 2024/9/26 17:22 # Author : Cocktail_pyfrom PIL import Image, ImageFont, ImageDrawdef split_string(s, num_parts):length len(s)chunk_size length // num_partsremainder length % num_partsparts […

数智化引领传媒新变革,又一场技术的盛宴!

文 | 智能相对论 作者 | 陈泊丞 2024巴黎奥运会在塞纳河畔为世界呈现了一场精彩绝伦的体坛盛宴。回顾今年的直播,每一个观众或许都可以在屏幕前感受到更胜往届的体育表现力和竞赛节目效果。 在超高清制播技术支持下,不仅制播画质变高清了,…

ASO关键词研究-9个步骤帮您找到应用商店优化的完美关键词

应用商店优化是一种让您的应用展示给更多用户的有效方法。为此,您需要在应用元数据中使用正确的关键字,以帮助 Apple 和 Google 的搜索算法知道何时在搜索结果中显示您的应用。如果您做得正确,他们会向更多人展示您的应用,而更多的…

python全栈学习项目案例(一)atm+购物车

atm购物车 文章目录 atm购物车一、项目需求二、项目构架图三、视图的实现四、登录认证五、转账功能六、购物功能 一、项目需求 二、项目构架图 其中用户功能层中有呈现给用户的视图、各个功能的简单函数(这些简单函数需要调用接口层中函数的具体功能) 接口层存放各个功能的具体…

自动化测试数据管理问题

在自动化测试中,关于数据管理的更好实践确实存在,这些实践可以帮助提高测试的效率和质量。以下是一些推荐的最佳实践:1. 使用Test Data Builder模式:这种模式可以帮助隐藏测试数据准备的细节,在测试代码中只显示地对测…

每日OJ题_牛客_NC1大数加法_高精度加法

目录 牛客_NC1大数加法_高精度加法 题目解析 C代码 Java代码 牛客_NC1大数加法_高精度加法 题目解析 模版类型的算法题,模拟加法列竖式运算的过程即可。 假定算法流程: 设定 i,j 两指针分别指向 s,t 尾部,模拟…

2024网络安全面试指南(非常详细)收藏这一篇就够了

1.1 网络安全行业现状 安全行业起步晚。安全行业整体起来才没几年,多数企业因为资源投入和建设时间原因导致覆盖面和深入度都不够,这其中甚至包括一些国内大厂,并没有想象的那么安全。其安全水位仅能应付一些白帽子级别,针对专业…

记录一次学习--委派攻击学习

目录 为什么要使用委派 什么账号可以使用委派 非约束性委派 这里有一张图 利用 流程 约束性委派 这里有一张图 如何利用 条件 具体流程 为什么要使用委派 这个是因为可能A服务需要B服务的支持,但是A服务的权限不可以使用B服务。然后这时就可以让域用户将…

2024年【烟花爆竹经营单位主要负责人】免费试题及烟花爆竹经营单位主要负责人考试技巧

题库来源:安全生产模拟考试一点通公众号小程序 烟花爆竹经营单位主要负责人免费试题是安全生产模拟考试一点通总题库中生成的一套烟花爆竹经营单位主要负责人考试技巧,安全生产模拟考试一点通上烟花爆竹经营单位主要负责人作业手机同步练习。2024年【烟…

吉林大学微机接口实验五:D/A转换

1.实验内容 2.实验原理/预备知识 D/A转换器TLC7528是关键,其用法参见: 芯片部件汇总:常用功能部件大全-CSDN博客 直接找"TLC7528 D/A数模转换器"(实际上学校的讲义已经讲的很清楚,我只是给搬到了博客里&…

C++ | Leetcode C++题解之第430题扁平化多级双向链表

题目&#xff1a; 题解&#xff1a; class Solution { public:Node* flatten(Node* head) {function<Node*(Node*)> dfs [&](Node* node) {Node* cur node;// 记录链表的最后一个节点Node* last nullptr;while (cur) {Node* next cur->next;// 如果有子节点…

【源码+文档+调试讲解】重庆旅游景点数据分析系统python

摘 要 重庆旅游景点数据分析系统是一个专门为旅游管理部门和景点运营商设计的信息化工具&#xff0c;它通过集成和分析各种数据来优化景点管理和提升游客体验。该系统能够实时收集游客流量、景点信息、满意度反馈等关键信息&#xff0c;帮助管理者洞察游客行为和市场趋势。系统…

C++ const成员函数

个人主页&#xff1a;Jason_from_China-CSDN博客 所属栏目&#xff1a;C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目&#xff1a;C知识点的补充_Jason_from_China的博客-CSDN博客 C const引用常量 使用规则 引用常量对象&#xff1a;可以引用一个常量对象&#xff0…

Unity 的Event的Use()方法

对于Event的Use方法&#xff0c;其在调用后将不会再判断同类型的事件 这种情况下&#xff0c;第二个MosueDown不会进入&#xff0c;因为已经Use 如果把Use注释掉 依旧能进入第二个MosueDown 也就是说当使用了Use方法&#xff0c;相同的事件类型不会进第二遍

【文心智能体】从零到一的优质智能体构建全攻略

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 创作平台&#xff1a;文心智能体平台&#xff1a; 基本配置智能体名称与简介人物设定回复逻辑prompt提示词的编写开场白设定与开场白…

利士策分享,领导者素养自检:五维审视法

利士策分享&#xff0c;领导者素养自检&#xff1a;五维审视法 在人生的广阔舞台上&#xff0c;每个人都蕴藏着成为领导者的潜力&#xff0c;但如何知晓自己是否已具备那份独特的素养&#xff1f; 这需要我们进行一次深刻而诚实的自我审视。 以下五个维度&#xff0c;或许能为你…

K8s Calico替换为Cilium,以及安装Cilium过程(鲁莽版)

迁移CNI插件的3种办法&#xff1a; 1、创建一个新的集群&#xff0c;通过Gitops的方式迁移负载&#xff0c;然而&#xff0c;这可能涉及大量的准备工作和潜在的中断。 2、另一种方法是重新配置/etc/cni/net.d/指向Cilium。但是&#xff0c;现有的pod仍将由旧的…

AI 驱动的数据库 TDSQL-C 实战与电商可视分析

目录 一、背景介绍二、实验介绍三、效果展示四、实操指导4.1 系统设计4.2 环境搭建4.2.1 购买 TDSQL-C Mysql Serverless 实例4.2.2 部署HAI高算力服务器本地python环境搭建 4.3 应用构建4.3.1 搭建项目框架4.3.2 TDSQL-C 数据库&HAI云算力配置4.3.3 应用开发4.3.4 运行程序…