WarSir 发表于 2019-10-9 13:34:30

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

求助,为什么小甲鱼的书上教学写的"long double=12",但是自己编写出来却是16。是哪一步算错了吗?辛苦各位帮忙解答一下,谢谢。

我叫MD 发表于 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字节。 规定long double的精度不少于double的精度,就像int和long int一样。关于具体的编译器的情况, 可以打印 sizeof(long double)得知。

枫落梧桐雨 发表于 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为三个或四个字。

WarSir 发表于 2019-10-13 11:55:18

谢谢二位的解答{:10_281:}
页: [1]
查看完整版本: 为什么编出来的数据跟小甲鱼的不一样的???求解