为什么编出来的数据跟小甲鱼的不一样的???求解
求助,为什么小甲鱼的书上教学写的"long double=12",但是自己编写出来却是16。是哪一步算错了吗?辛苦各位帮忙解答一下,谢谢。 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)得知。 一.C32位机上类型长度
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为三个或四个字。 谢谢二位的解答{:10_281:}
页:
[1]