繁体   English   中英

内存(位)如何在 C 编程中工作

[英]How does memory(Bits) work in C Programming

请解释这一段:

C 中的浮点数使用 IEEE 754 编码。

这种类型的编码使用符号、有效值和指数。

由于这种编码,许多数字将有小的变化以允许它们被存储。

此外,有效数字的数量可能会略有变化,因为它是二进制表示,而不是十进制表示。

单精度 (float) 为您提供 23 位有效位、8 位指数位和 1 个符号位。

双精度 (double) 为您提供 52 位有效位、11 位指数位和 1 个符号位。

我最近开始用“C”编码,我学习了程序如何工作的所有数据结构。但是当我看到这一段时,我一个字都听不懂。

什么是重要的、指数的、比特的?

变量,浮点数,双精度如何存储值,需要多少空间以及它们存储在哪里。

位是“开/关”开关,编码为 0 或 1。您也可以将其视为布尔值、True 或 False。

符号位告诉您浮点数是正数还是负数。

重要的,也称为尾数,给你两个的负幂。 对于浮点数,您有 23 位,因此您可以表示从 2^-23 到 1-2^-23 的任何内容。

指数还为您提供 2 的幂,范围为 (2^-126,2^127)。

把所有东西放在一起得到你的浮点数:(符号)(1+显着)2^(指数)

并非所有数字都可以用 2 的幂精确表示。因此,您的机器近似于 0.1 之类的数字。

浮点数需要 32 位,而双精度数需要 64 位。

下面是一篇关于 IEEE 浮点的简明文章,它应该让事情更清楚: https : //www.doc.ic.ac.uk/~eedwards/compsys/float/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM