smallint,integer,word和byte如何保存数据?

时间:2017-11-09 19:11:18

标签: integer int byte word

我在考试中得到了这个东西,我必须选择哪个适用

  1. 十进制数146在计算机中保存为" 10010010"
  2. 十进制数38,069在计算机中保存为" 1001010010110101"
  3. 十进制数-95在计算机中保存为" 10100001"
  4. 十进制数-32,695在计算机中保存为" 1000000001001001"
  5. 我必须在smallint,integer,word和byte之间进行选择。

    任何答案和理由为什么??

3 个答案:

答案 0 :(得分:2)

因此,如果没有上下文(尤其是您正在使用的语言),很难获得明确的答案,但一般来说,整数类型都是签名的,但长度因人而异。语言,字/字节是无符号的。

基于此,假设每个条目只有一个答案,我建议:

1)字节 - 8位,无符号,范围0到255

2)字 - 16位,无符号,范围0到65535

3)Smallint - 8位,有符号,范围-128到127

4)Int - 16位,有符号,范围-32768到32767

答案 1 :(得分:1)

它取决于几个方面(语言,操作系统,签名,无符号,固定点,浮点......)

对于整数:Int精度<精度很高

浮动:Float precison<双精度

对于十进制:取决于精度和比例。

对于计算机,Decimal不是Float。

这是一个非常大的主题

结尾编号可以二进制格式存储(更紧凑,更高效),也可以文本格式存储(ex xml,json,csv ...)

答案 2 :(得分:1)

  1. 146:无符号字节或smallint
    • 无符号字节从0到255,但有符号字节从-127到127
    • 您将获得8位,但您可能会认为msb已被抑制
  2. 38,069:unsigned smallint或integer
    • 未签名的smallint(短片)从0-65,535开始,但签名的smallints从-32,767变为32,767
  3. -95:必须是签名字节
    • 你知道这个因为msb是1,所以你可以识别msb是什么。即没有压制零。
  4. -32,695:必须是签名的smallint
    • 与(3)相同的原因,您可以识别符号位,因此您知道msb在哪里
相关问题