当前位置:网站首页>À propos du stockage des données en mémoire
À propos du stockage des données en mémoire
2022-06-25 13:10:00 【Lin JT】
À propos du stockage des données en mémoire
Cet article explique comment les nombres flottants sont stockés en mémoire
Tout d'abord,,Regardons d'abord cette procédure:>

En apprenant, La réponse que j'ai donnée est très simple9 9.0 9 9.0,Et pourtant,Quand le programme a commencé:>

Pour analyser les procédures ci - dessus, Il faut d'abord comprendre le stockage des nombres flottants en mémoire.
Pour les nombres binaires flottants, Conformément aux normes internationalesIEEE(Institute of Electrical and Electronic Engineering) 754, N'importe quel nombre binaire de points flottantsVPeut être exprimé sous la forme suivante:>
*(-1) ^S * M 2 ^E
Parmi eux(-1)^SEst un bit de symbole,Quands = 0 Heure,VEst un nombre positif, Quand le nombre de points flottantss = 1 , VEst négatif.
MEst un bit valide, M>=1EtM < 2
2 ^ELa puissance indique le chiffre de l'indice
Par exemple,:>
Par exemple, un nombre décimal flottant 5.5,On le convertit en binaire pour:>
101.1 //Ici. .1La raison pour laquelle1Le poids de2 ^-1Secondaire,C'est - à - dire:0.5.Et nous utilisons çaVFormat de,Pour pouvoir écrire:>
*(-1)^0 1.011 * 2 ^ 2
C'est - à - dire:S = 0; M = 1.011; E = 2;
Pour-5.5,Avec çaVFormat de, Peut être exprimé comme suit:
*(-1)^1 (1.011) * 2 ^2;
Pour le stockage de nombres flottants en mémoire,Il existe les dispositions suivantes:
Pour un seul flotteur de précision

Pour le nombre de points flottants de double précision:>

Il y a aussi des dispositions: Parce queMToujours.>=1 Moins de2, C'est - à - dire:MToujours égal à1Un entier de, Donc,,Quand il est stocké en mémoire,Il n'y aura que des décimales,Exemple 5.5
Peut être exprimé comme suit:**(-1)^0 1.011 * 2 ^ 2*, M = 1.011. Mais les recettes que nous stockons, Ne stockera que011, Et quand on va l'utiliser, C'est tout.1C'est bon..
Pour l'indiceEEn termes, Le premier est ununsigned intNombre de types, Donc sa portée est 0 ~ 255(8bit) Ou 0 ~2047(11bit)
Et quand il est exprimé par comptage scientifique, C'est inévitableECas de nombre négatif Par exemple Décimal0.5 Exprimé en nombre binaire comme:>
1*10 ^-1 Encore.EEst supérieur ou égal à0, Donc,, Stockage de mémoire spécifiéELa valeur réelle de doit être ajoutée à un nombre intermédiaire, I.e.127 (8bit) Ou1023(11bit)Après,Stockage en mémoire
Comme tout à l'heure-1.,Enregistrer sous32Bit float, Enregistrer sous -1 + 127 = 126C'est - à - dire:
01111110
En outre, IndexEEt les règles suivantes:>
SiELes valeurs de ne sont pas toutes1Ou0, EtELa valeur réelle de est la valeur stockée en mémoire moins127(Ou1023),Ensuite, les chiffres validesMAjouter le premier.
Comme tout à l'heure0.5 BinaireVExprimé en:>
1.0*2 ^ -1 Ici.EPour-1, MPour1.0,Donc les données stockées en mémoire sont
0 01111110 00000000000000000000000
SiELes données stockées dans sont complètes0Heure, Alors réfléchissons., Quel petit nombre!,C'est - à - dire:2^ -127Secondaire, Donc,, Les dispositions sont les suivantes::>
QuandELes données stockées dans sont complètes0Heure, Son indiceELa valeur réelle de 1 - 127(Ou1023), Et un nombre valideMPlus de, Mais plus0, C'est un signe de proximité0Nombre de.
QuandELes données stockées dans le sont pour un temps complet, AlorsELa valeur réelle de128(8bit), Alors2^ELa puissance est un très grand nombre, Donc,,VExprimé en infini positif et négatif.
Revenons au premier exemple:>
#include <stdio.h>
int main()
{
int n = 9;
float* pFloat = (float*)&n;
printf("nLa valeur de:%d\n", n);
printf("*pFloatLa valeur de:%f\n", *pFloat);
*pFloat = 9.0;
printf("numLa valeur de:%d\n", n);
printf("*pFloatLa valeur de:%f\n", *pFloat);
return 0;
}

Regardez la deuxième partie:>

Sous forme de points flottantsnC'est changé.9.0,Alors9.0La représentation binaire de:>
1001.0C'est - à - dire:1.001*2^3 AlorsS = 0; E = 3 + 127 = 130; M = 0.001.C'est - à - dire:
0 1000 0010 00100000000000000000000
Donc, en termes d'entiers,Ces données sont:>
![[Impossible de transférer l'image de la chaîne externe,Il peut y avoir un mécanisme antivol à la station source,Il est recommandé de sauvegarder l'image et de la télécharger directement(img-Lw2C6Cbn-1638165164585)(C:\Users\MSI-NB\AppData\Roaming\Typora\typora-user-images\image-20211129090318437.png)]](/img/80/a182c36b6a88835bfbf0b336075649.png)
Sous forme de points flottants, Bien sûr que9.0C'est.
边栏推荐
- A half search method for sequential tables
- Fedora 35 deploys DNS master-slave and separation resolution -- the way to build a dream
- Summary of leetcode linked list problem solving skills
- [machine learning] model and cost function
- golang键盘输入语句scanln scanf代码示例
- MySQL adds, modifies, and deletes table fields, field data types, and lengths (with various actual case statements)
- 3+1 guarantee: how is the stability of the highly available system refined?
- Connect with the flight book and obtain the user information according to the userid
- Another night when visdom crashed
- [flask tutorial] flask development foundation and introduction
猜你喜欢

Serenvlt first met

剑指 Offer II 032. 有效的变位词

美创入选“2022 CCIA中国网络安全竞争力50强”榜单

.NET in China - What's New in .NET

Geospatial search - > R tree index
![[flask tutorial] flask development foundation and introduction](/img/c4/fb80fbe6b563e3b304d59623ef6465.jpg)
[flask tutorial] flask development foundation and introduction

Talk about 11 key techniques of high availability

WIN10环境下配置pytorch

Baidu search stability analysis story

J2EE从入门到入土01.MySQL安装
随机推荐
剑指 Offer II 025. 链表中的两数相加
KVM 脚本管理 —— 筑梦之路
Back test of quantitative trading - example of futures CTA strategy (tqzfuturerenkoscalpingstrategy)
KVM script management - the road to dream
与生产环境中的 console.log 说再见
词法陷阱(C)
AGCO AI frontier promotion (6.25)
英语口语 - 弱读
KDD 2022 | graphmae: self supervised mask map self encoder
字符串入门十八讲合集四
用include what you use拯救混乱的头文件
使用Visio画立方体
Fedora 35 deploys DNS master-slave and separation resolution -- the way to build a dream
mysql导入导出数据到excel表日期出现问题
RESTful和RPC
And console Log say goodbye
JSTL tag: fmt:formatdate tag format Chinese standard time or timestamp
始终保持疫情防控不放松 营造安全稳定的社会环境
515. Find Largest Value in Each Tree Row
剑指 Offer 04. 二维数组中的查找