范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

CC编程知识整型数据在内存中的存储!讲解示例

  1.整型的归类
  char
  short
  int
  long
  以上都分为有符号(signed)与无符号(unsigned)的类型2.原码、反码和补码2.1 定义
  计算机在表示一个数字时,是采用二进制的方式,所以为了准确表示一个数的正负,每一个有符号数都将其最高位视作是符号位,最高位为0表示正数,最高位为1表示负数。我们接下来以有符号整型int的数字进行分析。
  一个有符号整数由 符号位 + 数值位 组成,数值位是其最高位,分别以0/1表示正/负
  对于正数来说,反码补码都与原码相同;
  对于负数来说,符合以下3条规则:
  原码:将十进制数字直接翻译为二进制数
  反码:原码的符号位不变,其他位按位取反
  补码:反码+1
  而对于整型来说,整型在内存中实际上是以补码的形式进行存储的。2.2 补码的意义
  有的同学可能就会问了,为什么计算机要发展出原码、反码、补码这么多种码呢?
  这就与计算机对于整数的运算有关了。
  CPU只有加法器,减法在运算时也会被视作一个数加另一个负数。考虑到整数的最高位是符号位,两个整数中若包含负数,以原码直接相加得到的数一定是不对的。所以问题就变成了如何使得运算简单而精确,既要处理符号位,又要只进行加法运算,达到以某一种二进制形式的"码"直接相加就能得到正确结果。
  下面,我们以60+(-18)为例,分别用原码、反码、补码直接进行二进制的运算。
  原码运算:00000000 00000000 00000000 00111100( 60的原码)  + 10000000 00000000 00000000 00010010(-18的原码)  -------------------------------------------  10000000 00000000 00000000 01001110(某个数的原码)
  显然,得到了的原码转化为10进制是-78,并非正确答案42。
  反码运算:00000000 00000000 00000000 00111100( 60的反码)  + 11111111 11111111 11111111 11101101(-18的反码)  -------------------------------------------  100000000 00000000 00000000 00101001  截取后32位:  00000000 00000000 00000000 00101001(某个数的反码)
  显然,得到了的反码转化为10进制原码是41,并非正确答案42,但是只与正确答案相差(+1),于是,我们就想将负数的反码+1,即变成"补码"来进行运算,而又正数的补码是原码本身,这时候我们看看会怎么样呢?
  补码运算:00000000 00000000 00000000 00111100( 60的补码)  + 11111111 11111111 11111111 11101110(-18的反码)  -------------------------------------------  100000000 00000000 00000000 00101010  截取后32位:  00000000 00000000 00000000 00101010(某个数的补码)
  显然,得到了的补码转化为10进制原码是42,我们得到了正确结果。2.3 结论
  综上,我们发现,只要将两个整数使用补码进行运算,就不需要考虑它们的符号位了,将它们的所有位直接简单相加即可,就能得到正确的结果。2.4* 负数二进制补码的快速转化
  对于char类型整数,-1用二进制补码表示为
  当我们已知一个负数的二进制补码时,用比这个数多一位的、最高位为1、其他位全0、这里应为9位的二进制数
  直接减去-1的二进制补码得
  得到的数就是十进制(-1)的绝对值,也就是1,只要加上负号,就能快速得到这个负数二进制补码的十进制原码。
  原理十分简单,一个负数的 原码加上补码 = 原码+反码+1 = 所有二进制位全1再加1 = 多一位的、最高位为1、其他位全03. 大小端字节序3.1 什么是大小端
  在内存中,数据的大小端存储是在 字节 尺度上进行讨论的
  大端存储模式:数据的 低位 保存在内存的 高地址 ,数据的 高位 保存在内存的 低地址
  小端存储模式:数据的 低位 保存在内存的 低地址 ,数据的 高位 保存在内存的 高地址3.2 为什么有大端和小端之分
  在计算机系统中,我们通常是以字节为单位存储数据的,每个地址对应一个字节。
  一个字节为8bit,但是在C语言中除了8bit的char之外,还有16bit的short,32bit的int。另外,对于位数大于8位的处理器,例如16位和32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着如何将多个字节安排的问题。这便导致了大小端存储模式的诞生。
  我们以int类型的数 0x01ff4218 为例(两个十六进制位即为1个字节),看一下在大小端下这4个字节分别是如何分配的
  大端存储模式
  小端存储模式
  3.3 写一段代码来判断你的机器的大小端字节序
  算法简单概括:截取4个字节大小的int整型的1个字节的低位。若机器为大端字节序,该字节存储0x00;若机器为小端字节序,该字节存储0x01;#include //实现方法1 int check1() { 	int i = 1; 	return *(char*)&i; }  //实现方法2 int check2() { 	union check 	{ 		int i; 		char c; 	}ch = {1}; 	return ch.c; }  int main() { 	int ret = check1(); 	if (ret == 1) 	{ 		printf("小端 "); 	} 	else 	{ 		printf("大端 "); 	} 	return 0; }
  参考文献《C Primer Plus》 第六版, p494
  另外,对现在我们的大多数朋友来说还是学编程技术最重要!栽一棵树最好的时间是十年前,其次是现在。对于准备学习编程的小伙伴,如果你想更好地提升你的编程核心能力(内功)不妨从现在开始!
  编程学习书籍分享:
  编程学习视频分享:
  整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)
  欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
  对于C/C++感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C++的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!

国内支付快讯!数字人民币接入支付宝工商银行被罚2021。5。10国内支付行业资讯01hr数字人民币接入支付宝数字人民币子钱包再度扩容,国内首批互联网银行之一的网商银行成为尝鲜者,成为第七家参与公测试点的商业银行。支付宝APP面共享充电宝韭菜没那么好割来源中国经济网经济日报共享充电宝韭菜没那么好割王轶辰共享充电宝企业要想突破天花板,最重要的是抓住行业红利期,摆脱涨价这种简单粗暴的盈利模式,利用现有流量尽快探索出更多元化的商业模式腾讯员工打算35岁退休的底气与启示退休,这可能是在我们脑海中经常冒出来的词。退休,对于很多人而言,是一种比较向往的生活状态。退休,就意味着从此不再需要忍受着职场中的各种可能的不如意,不用忍受职场的各种可能的PUA。翻译机成精了?精通83种语言双屏同传级翻译,0。5秒就和老外沟通大多数商务人士在开会或商务会谈时,常常需要与外国人实时交流,但是会有听不懂或不会说外语的情况!最后就只能用一口不利索的外语和人交谈,着实有些尴尬,而且比较影响个人形象!不过,极果君一周新股回顾京东物流估值达4500亿,雪球计划在美进行IPO摘要港股上市1净利率超过60的中原建业通过港交所聆讯,应收账款高企需注意。2顺丰房托一手中签率为2878,预计炒作空间有限。3B。Duck母公司德盈控股递交赴港IPO申请,旗下小黄iOS14。5新功能仅4用户开启丨约40应用被苹果拒绝果粉之家,专业苹果手机技术研究十年!您身边的苹果专家苹果在iOS14。5中加入了App跟踪透明度功能,这个功能被认为可能是改变App广告行业及隐私安全的重磅新功能。根据功能介绍,A国产model3迎来首次涨价,会影响其销量吗?现如今国内的新能源市场已经不断地成熟,新能源成为了众多车企研究的主要方向,同时新能源也是汽车市场下一阶段的重要布局。大家会发现,曾经国内汽车市场基本上大家张口闭口的都是一些传统车企新机荟萃,红米OPPOvivo多款2000元档手机谁更强?最近,随着OPPK9的登场,2000元档新机变得异常红火,红米OPPOvivo都有很有实力的产品登场,可能大家都不好选了。那么,今天我们就来看看,几款比较不错的手机产品,一一展开,荣耀50最新消息曝光!易烊千玺代言,卡地亚戒指镜头,配色更好看根据有关媒体的爆料,荣耀在发布了全新的荣耀V40之后,下一款全新的旗舰机型,将会是荣耀50系列手机,荣耀40系列手机这个型号将会直接被跳过去。另外荣耀50系列手机的相关消息在网络上微信电脑版终于可以刷朋友圈PC版开始内测在之前,Mac版微信迎来了3。0。0版,最大看点就是支持电脑端刷朋友圈。原本以为Windows用户可以很快体验到,可没想到,这一等就是这么长时间。几天前官方终于发布了微信PC版v3微信又更新啦!!表情包上限不再是300个,真爽最近微信又双叒叕更新了,从8。0。2版本升到了8。0。3版本,每次更新后又有新的惊喜发现,今天小编盘点了5个新变化,看看哪个是你还没发现的?1。表情包上限修改微信聊天离不开表情包,
都是出丑闻,阿里为何力保蒋凡,怒开李永和卫哲?阿里女员工被侵害的事子弹还在继续飞。因为亚朵酒店出来了,说当时给房卡是得到该女士认可。我们小时候写作文,老师就教导我们有三要素时间地点人物。亚朵漏掉了最关键的时间,到底是酒席前还是腾讯没有人工客服?最近,有媒体报道称,微信8。0。8foriOS更新后,出现了一个全新功能微信客服。但这个客服不是大多数人想象中的客服,它更像是一种面向B端品牌商家的能力,C端微信用户通过这种能力更电商小白想要入门阿里供应链,应该干什么?本文来自艾优苏苏(S1997R1109)未经允许禁止转载现在大家都在问我电商项目有哪些,我怕避免不了割韭菜,今天就给大家讲解一下,大家的那些问题。无疑现在电商是个热门行业,门槛低又颜值音质兼备的甜品耳机,TFZESSENCE,细节纤毫毕现无线耳机虽然使用方便但仍有不足,除了时延续航等体验问题之外,能否完美还原音乐原本的模样,也成了不少音乐爱好者争论的关键点。但对于有线耳机的使用体验而言,大多数用户都表示认可且给出了2021年最适合大学生使用的笔记本电脑推荐马上面临开学季,对于刚上大学的人来说,拥有一款笔记本电脑是必不可少的。然而,现在市场上充斥着各种品牌,令人目不暇接,也让大学生们纠结不已。这里,机哥就整理了一些值得推荐的机型,以为电商税落地!电商行业却没怎么受影响?实体店该怎么反击?电商这个行业,已经融入了人们的日常生活中,提起电商这个行业,必定会让人联想到他和他同一竞争关系的实体经济,随着现在电商平台的发展,实体经济也是遇到了前所未有的窘境,实体经济发展的衰爆款来袭在迅猛发展的TWS浪潮中,它又将带来哪些惊喜呢?UI由我科技在激烈的市场竞争中,不忘初心,专注蓝牙及音频19年,全员聚焦TWS蓝牙耳机细分领域7年,作为TWS蓝牙行业的领路先锋,不仅参与制定蓝牙行业标准,同时致力于推动企业品牌化iOS15Beta5发布,更新内容抢先看苹果在今天凌晨向全体开发者用户发布了以下系统更新iOS15beta5(19A5318f)iPadOS15beta5(19A5318f)tvOS15beta5(19J5325f)此次美国管辖暴露大片盲区,华为借势崛起,20多个国家级核心设施落成中国的电信网络正以前所未有的速度占领非洲通信网络。近年来,以华为为首的中国电信公司为非洲大陆提供了广泛的服务,从互联网接入到电信移动网络,还有最近的数据中心建设。塞内加尔在上月启动TypeC到底是什么?别再说我是小米口华为口了如今这个年代,充电器不仅是手机的救命稻草,更成了人的救命稻草。出门在外手机电量焦虑随时随地伴随着我们,借充电器的情况也是时有发生。在我们向别人借充电器的时候,别人总会问你是什么口?热门智能手表PKOPPO华为苹果三选一,谁才是最佳的七夕节礼物?不知不觉,一年一度的中国情人节七夕节就快到了,想必最近不少情侣都在为送什么礼物而烦恼。从个人的角度来说,送玫瑰巧克力口红等礼物,不仅有些老套,还不实用。如果真的关心Ta,不如从Ta