C++ 数据类型的名称是从哪里来的?

C++ 数据类型的名称是从哪里来的?,c++,c,assembly,types,sqldatatypes,C++,C,Assembly,Types,Sqldatatypes,为什么是一点点,叫一点点。为什么8位是一个字节?是什么让人们把一个单词叫做16位,以此类推。他们的别名是在哪里产生的,为什么产生的 我希望其他人包括一些基本类型,然后扩展到和类似的数据类型 1位 -二进制单位 布尔-以布伦逻辑乔治的发明者命名 4位 半字节-位/字节大小的一半 8位 字节- 煤焦 八位组- 16位 字(无符号整数) 短(有符号整数) 32位 双字 整数(有符号整数) 无符号(无符号整数) 浮点(4字节浮点) 位是二进制数字 浮点应该是清晰的(浮点语义) 剩下的,我只

为什么是一点点,叫一点点。为什么8位是一个字节?是什么让人们把一个单词叫做16位,以此类推。他们的别名是在哪里产生的,为什么产生的

我希望其他人包括一些基本类型,然后扩展到和类似的数据类型

  • 1位
  • -二进制单位
  • 布尔-以布伦逻辑乔治的发明者命名
  • 4位
  • 半字节-位/字节大小的一半
  • 8位
  • 字节-
  • 煤焦
  • 八位组-
  • 16位
  • 字(无符号整数)
  • 短(有符号整数)
  • 32位
  • 双字
  • 整数(有符号整数)
  • 无符号(无符号整数)
  • 浮点(4字节浮点)
    • 位是二进制数字
    • 浮点应该是清晰的(浮点语义)

    剩下的,我只能猜测维基百科是你的朋友:

    • “char”只是“character”的缩写
    • “short”是“short int”的别名
    • “是CPU可以处理的本机或最有效的大小”(感谢您指出这一点)
    • “int”是“integer”的缩写。大小未定义(可以是16、32或64位)
    • “float”是“浮点数”的缩写
    • “double”是“双精度浮点数”的缩写

      • 亚伦忘记的一个是布尔:这要追溯到逻辑学家,他被认为是“布尔”逻辑的发明者

        我一直认为8位被称为八位字节,你可以活到老学到老。;)

        您可能会问: 为什么米被称为米?为什么1000米代表1公里


        问题是。。。用简单的方式思考。不要让自己陷入紧张状态。

        您对符号的short/int/long/word/dword的约定不仅仅是x86 ism;这是一个Windows ism(短/长/字/DWORD)。我不明白为什么Windows程序员如此喜欢它们,因为标准(u)intN\t类型对几乎所有人来说都更清楚

        我不认为x86自然而然地带有“word”和“double word”;寄存器为al、ah(8位)、ax(16位)、eax(32位)。不过,我忘了如何指定内存移动的大小

        M68K指令有.b(字节)、.w(字)和.l(长)后缀。没有双/四字IIRC

        ARM具有ldb(字节)、ldh(半字)、ldr(寄存器)

        PPC有字节、半字、字和双字IIRC

        一般来说,谈论“字大小”是毫无意义的,因为它高度依赖于体系结构,即使如此,它也会发生变化(我怀疑现代x86实现16位算术比32位算术快多少)


        也有“指针大小”定义,但是AMD64只有48位虚拟地址(前17位应该是全部1或全部0)。注意:在C++中,数据类型占用的位数是依赖于实现的。例如,一个字符可以是7位。一个字节是底层机器的本机小型数据类型。有些机器没有8位字节,浮动也不总是占用32位。但是我只是想把基本的数据类型记下来,这样我就可以理解为什么它们是这样命名的。我希望人们一旦理解了数据类型名称的基础,就会更好地理解如何使用它。@空间:不,char必须至少有8位。顺便说一句,有些机器的字符==…=long==32位。您指定的大小在许多语言和硬件上都是错误的。例如,双字是x86特有的(大多数32位CPU只是将一个字定义为32位),所以它被称为a
        bit
        ,因为它是a
        b
        inary dig
        it
        ?我一直认为它是
        bi
        nary digi
        t
        ;)我认为这证明了你可以问一个愚蠢的问题,并在这里得到一个明智的答案。谢谢@Aaron。我理解“word”是CPU能够处理的本机或最有效的大小——非类型化的内存量。这可以与int进行比较和对比,虽然numeric最初也意味着在不影响效率的情况下根据最大效用(范围)调整大小,但给定CPU有时有两个同样有效的大小,并且对int施加了某些限制和期望(特别是给定long、long-long),实际上,两者的大小可能有所不同。不一定是最小的。有什么可以支持你的主张吗?我可以引用@Tony,同意。我也希望看到这方面的消息来源。引用Donald Knuth的话会有用的,如果他写过的话。我知道这个词是用来表示CPU最小的可寻址数据单元的,但为什么它被称为词呢?是因为人类用文字交流,这些文字是由字母(比特)组成的吗。我在寻找这些名字的基础。@马克:“同意……单词……表示最小的”@ Mark:一个词不是最小的可寻址单位。(通常是一个字节)。如果你想要一个反例,你现在使用的x86 CPU将一个字定义为16位宽,但最小的可寻址单元仍然是一个8位字节(或一个八位字节)。是电信业的人称字节为八位字节吗?@Jdv,八位字节不是最正确的名称吗?这就引出了IP地址,它使用4个字节(实际上在本例中称为八位字节)组成IP地址。@jdv:法国人似乎经常这样做。@snemark,所以这是一种文化现象?这是否意味着IP地址的发明者是法国人?八位字节是一个明确的术语,表示8位的有序集合。字节是计算机上最小的可寻址单元,现在几乎总是8位。在网络协议中,使用八位字节是为了完全明确,因为根据定义,您并不是在谈论特定的计算机体系结构。例如,如果您将IP地址定义为4字节而不是4个八位字节,PDP 10系统程序员将为您编写一个具有36位IP地址的网络堆栈