首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C如何在8位槽中存储双十进制?

C如何在8位槽中存储双十进制?
EN

Stack Overflow用户
提问于 2011-10-09 11:43:39
回答 2查看 737关注 0票数 1

C如何在8位槽中存储双十进制?

代码语言:javascript
复制
#include "stdio.h"

main(){
  double x = 123.456;
  printf("\n %d - %e \n",sizeof(x),x);
}

输出:

代码语言:javascript
复制
8 - 23.456

X的值是正确的,是123.456,但假设它只有8位。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-09 11:44:29

那不是8位。它是8个字节。并且每个字节至少是8位(并且通常恰好是8位)。

因此,对于double来说,它可能是8*8=64位。

编辑:

sizeof()运算符以字节为单位得出对象的大小。

根据定义,“字节”是char的大小。(这就是C标准对单词“byte”的定义;它在其他上下文中可能有不同的含义。)

字节中的位数由<limits.h>中定义的宏CHAR_BIT指定。您可能遇到的几乎任何系统都会有CHAR_BIT == 8,但我知道一些DSP(数字信号处理器)的实现将CHAR_BIT设置为16或32。

票数 5
EN

Stack Overflow用户

发布于 2011-10-09 11:52:09

可怕的是,sizeof返回的操作数大小是sizeof char的倍数。

在所有常见平台上,这意味着sizeof以字节为单位返回。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7701325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档