鱼C论坛

 找回密码
 立即注册
查看: 2433|回复: 3

为什么编出来的数据跟小甲鱼的不一样的???求解

[复制链接]
发表于 2019-10-9 13:34:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助,为什么小甲鱼的书上教学写的"long double=12",但是自己编写出来却是16。是哪一步算错了吗?辛苦各位帮忙解答一下,谢谢。
按照书上的教学进行编写.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-9 13:52:53 | 显示全部楼层
long double(多精度浮点类型或长精度浮点类型)long double 是1999 修订后的 C 语言标准 “关键字”,C 语言,C 语言的库函数里 用了 long double 这个词汇,但 对 long double 的处理,取决于 编译器。ANSI C标准规定了double变量存储为 IEEE 64 位(8 个字节)浮点数值,但并未规定long double的确切精度。所以对于不同平台可能有不同的实现。有的是8字节,有的是10字节,有的是12字节或16字节。 [1]  规定long double的精度不少于double的精度,就像int和long int一样。关于具体的编译器的情况, 可以打印 sizeof(long double)得知。

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
WarSir + 2 + 2 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-10-9 14:42:04 | 显示全部楼层
一.C
32位机上类型长度

size of char: 1

size of int: 4

size of long:4

size of float:4

size of long long:8

size of double:8

size of long double:12

size of char * :4

64位机上类型长度

size of char:1

size of int:4

size of long :8

size of float :4

size of long long:8
size of double:8

size of long double:16

size of char * :8
二.C++

1.字节和字长

字节,八位就是一个字节,是固定概念。字长是指计算机一次能处理的二进制数据的长度,是一个非固定的概念。例如,8位计算机的字长为8,即一个字节, 32位计算机的字长位32,即4个字节,同理,64位计算机的字长为64,即8字节。

2.char类型始终是一个字节长,即8位。

3.int、short int和long int

通常int为一个字长,short为半个字长,long为一个或2个字长(在32位机器中为一个字长)。

4.浮点型float、双精度double、和长双精度long double

典型情况下,float 为一个字,double是两个字,long double为三个或四个字。

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
WarSir + 2 + 2 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-10-13 11:55:18 | 显示全部楼层
谢谢二位的解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-4 15:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表