整数和浮点数在内存中的存储

存储概念|详解大小端存储 大小端存储的详解,看完必会 阅读详情

一.整数在内存中的存储

整数的2进制表示方法有三种,原码、反码和补码。

正数的原反补都相同,负数的反码是在原码除了符号位的剩余位取反,补码在反码的基础上加1。

对于整型来说,内存中存储的其实是补码。计算中使用的也是。超过一个字节的存储,就存在存储顺序的问题,接下来我们就来介绍一下大小端字节存储。

1.大端字节序和小端字节序

1.大端存储模式:数据的低位字节内容保存在内存的高地址处,高位字节内容保存在低地址处,也就是正着存。

2.小端存储模式:数据的低位字节内容保存在内存的低地址处,高位字节内容保存在高地址处,也就是倒着存。

例如 int a=0x11223344

大端存储的就是 11 22  33  44,小端存储的是 44  33  22  11.

常用的x86是小端模式,而KEIL C51为大端模式。很多ARM,DSP都为小端模式,有些ARM处理器可以由硬件来选择大小端模式。

2.设计程序判断当前机器的字节序

1在内存中存储应该是00 00 00 01,访问第一个字节空间,如果是10 00 00 00(小端),则访问的结果就是1。

//方法一
#include<stdio.h>
int check()
{
int i=1;
return (*(char*)&i)
}//只访问i的最低位字节
//方法二
int Test()
{
	union un
	{
		int i;
		char c;

	}un;
	un.i = 1;
	return un.c;
}
int main()
{
int ret=check();
if(ret==1)
printf("是小端\n");
else
printf("是大端\n");
return 0;
}

二.浮点数在内存中的存储

V =(-1)^S *M * 2^E

任意一个浮点数可以表示成以上的形式

其中(-1)^s表示符号位,当S=0,V为正数;S=1,V为负数。

1)存储M时需要注意的问题

M表示有效数字,M是大于等于1,小于2的。

因为计算机默认这个数的第一位是1,所以存储过程中可以把1舍去,只保留后面的小数部分。等到读取的时候再把1加上去。这样可以节省一位有效数字,以32为浮点数为例,留给M只有23位,相当于可以保留24位有效数字。

2)存储E时需要注意的问题

2^E表示指数位。

E是一个无符号整数,E为八位,取值范围0~255,11位0~2047。但是科学计数法中E是可以出现负数的,所以再存入内存中时E的真实值必须再加上一个中间数。对于八位的,中间数为127,对于11位的,中间数是1023。

例如十进制的5.5 转换为二进制为101.1,也就可以写成(-1)^0 * 1.011* 2^2

S=0,M=1.011,E=2.

3)   E取出的三种情况

i))E不全为0或不全为1

E的计算值减去127(或1023)得到真实值,再将有效数字M前加上第一位的1。

ii)E全为0

此时浮点数的指数E等于1-127或者1-1023,有效数字不再加上1,而是还原为0.XXXXX的小数。表示+-0,以及接近于0的很小数字。

iii)E全为1

有效数字M全为0,表示+-无穷大。

使用kali对局域网内的主机进行远程控制 输入命令:hydra -l administrator -P/usr/share/woerdlists/rockyou.txt 192.168.100.241 smb -V。账户(adminitrator)密码:123456 【一般账户都是我们知晓了,如果不知道账户进行破解那几乎不太可能,密码如果设置的特别复杂无规律也是特别难破解的】【-r:扫描整个网段 后面就是设置 192.168.241.100/24的网络地址段 为 192.168.241.0/24 0和/24之间不要空格】 阅读详情

相关推荐

【前端HTML生成条形码——MQ】

本文将展示前端HTML如何根据用户输入内容生成对应的条形码,附HTML和JS代码。代码如下(示例):

weixin_42588676的博客 1955

简单理解大小端存储

大小端存储

qq_46638003的博客 4757

安装VMware,出现没有虚拟网络适配器的问题

安装VMware,出现没有虚拟网络适配器的问题

Young_Harry的博客 1万+

第七课:大端存储和小端存储

文章详细介绍了大端存储和小端存储的含义及其使用方法

Mr-Gui的博客 1万+

闲人闲谈PS之一项目库存跨公司业务STO解决方案--SAP闲人的开篇

写这篇文章之前,简单说一下发这篇文章的动机。也算是在SAP这一行干了快10多年,在对一个模块了解越来越深入,越发觉自己的SAP知识浅薄。总的来说,和多数顾问一样,对于**标准功能**的应用业务场景理解还是存在或多或少的知识盲区。 因为一个偶然,看到SAP团子君的文章,分享了很多干货文章。这也是自己一直想做的时候,不管水平高低与否,分享本身就意味着提升。好了废话不多说,先在优快云上发一篇吧,困惑自己将近10年的问题的解决方案。 业务场景:在项目型企业中,通常会有这样的业务,母公司和客...

SAP闲人的博客 9267

ICC2:postmask ECO参考脚本

更多学习内容请关注「拾陆楼」知识星球。

m0_61544122的博客 883

【数据存储】大端存储||小端存储(超详细解析,小白一看就懂!!!)

大小端存储是计算机存储的一个设计概念,涉及了高地址和低地址,数据的高位和低位等概念,所以在理解大小端存储之前,需要知道什么是高地址和低地址,什么是数据的高位和低位,这样才能更好的理解大小端存储。

weixin_45031801的博客 2万+

Xilinx系FPGA学习笔记(三)Vivado的仿真及ILA使用

接着学习vivado的使用方法。

贾saisai的博客 2546

【数据存储:小端模式和大端模式】

【数据存储:小端模式和大端模式】

Sugar_wolf的博客 3963

在 SAP SD(销售与分销)模块中,销售合同 / 订单的抬头(Header) 和行项目(Item) 核心数据表如下,按 “核心表 + 扩展表” 分类说明,同时区分销售合同(Contract,类型 W

SAP SD模块中销售合同/订单的核心数据表分为抬头和行项目两类。核心抬头表包括VBAK(基础数据)和VBUK(状态数据),核心行项目表包括VBAP(基础数据)和VBUP(状态数据)。扩展表包含VBAKE(抬头增强)、VBAPe(行项增强)、VBEP(计划行)、VBFA(凭证流)等。销售合同(WK/WC)和订单(OR)通过VBAK-AUART字段区分,核心表结构相同。查询时需注意单据类型筛选,并通过VBELN主键关联抬头和行项数据,KNUMV关联定价条件,VBFA表追踪凭证流。

金牌架构师 1091

【AI Agent】Hermes Agent解析

Hermes Agent:一个具备持久化学习能力的开源AI Agent框架 核心特点: 突破传统Agent的"无状态困境",通过记忆系统(SQLite+FTS5全文检索)实现跨会话经验积累 支持200+模型自由切换,11种模型家族和15+平台接入 五层架构设计(入口层、编排层、推理层、工具执行层、存储层)实现平台无关性 47+内置工具和动态技能沉淀机制,支持从任务执行中自动提炼可复用Skill 独特的四层记忆体系(会话/每日/长期/向量索引)和辩证式用户建模 与传统Agent对比: 具备自我进化能力,通过A

sysu_lluozh 942

【C语言】整数和浮点数在内存中的存储

一篇学会整数和浮点数在内存中的存储

s_little_monster的博客 1万+

<PLC><汇川>汇川PLC基于EtherCat协议使用转矩模式控制SV630N伺服驱动电机

本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如果有值得记录的内容,也会添加进来。

用沸腾的热血,支付我们的人生吧! 4159

关于整数和浮点数在内存中的存储

整数浮点数在内存中的存储

favour_you___的博客 1780

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

整数和浮点数分别在内存中的存储

彻底了解浮点数是如何在内存中存储的

2302_81090306的博客 1115

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

关于整数和浮点数在内存中的存储的总结

以上便是整数和浮点数在内存中的存储问题,这里面的知识点不难,只是需要记很多东西,建议忘记的时候就反复拿出来复习,强化自己对于数据类型的理解能力和内功。

hbw040115的博客 544

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

整数和浮点数在内存中的存储模式

说起整数和浮点数,大家一定不会陌生。什么是整数和浮点数呢?就是。就是。那么整数和浮点数在内存中又是怎样存储的呢?存储方式是否相同呢?想知道后续如何,请接着往下看~

2302_77644537的博客 1134
上一篇: C语言中指针的深度理解(1)
下一篇: C语言中指针的深度理解(2)
宋恩淇要努力
博客等级 码龄2年 108粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值