zoukankan      html  css  js  c++  java
  • 32位与64位系统基本数据类型的字节数

    参考博客:https://blog.csdn.net/u012611878/article/details/52455576

    32位与64位系统数据类型

    不同的平台上对不同的数据类型分配的字节数是不同的,一般的,数据类型的字节数是由编辑器决定的(编译期间决定数据类型长度)。

    简单来说,平台就是CPU+OS+Compiler,cpu的位是指一次性可处理的数据量是多少,1字节=8位,32位处理器可以一次性处理4个字节的数据量,依次类推。32位操作系统针对的32位的CPU设计。64位操作系统针对的64位的CPU设计。所以平台是三者的组合,它们的字节长相同时,效率最高。

    下面是32位系统与64位系统各数据类型对比:

    除了*与long随操作系统子长变化而变化外,其他的都固定不变(32位和64位相比)

    float与double的范围和精度

      1. 范围 
        float和double的范围是由指数的位数来决定的。 
        float的指数位有8位,而double的指数位有11位,分布如下: 
        float: 
        1bit(符号位) 8bits(指数位) 23bits(尾数位) 
        double: 
        1bit(符号位) 11bits(指数位) 52bits(尾数位) 
        于是,float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。 
        其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。 
        float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。

      2. 精度 
        float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。 
        float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字; 
        double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位

  • 相关阅读:
    hdu 4027 Can you answer these queries?
    hdu 4041 Eliminate Witches!
    hdu 4036 Rolling Hongshu
    pku 2828 Buy Tickets
    hdu 4016 Magic Bitwise And Operation
    pku2886 Who Gets the Most Candies?(线段树+反素数打表)
    hdu 4039 The Social Network
    hdu 4023 Game
    苹果官方指南:Cocoa框架(2)(非原创)
    cocos2d 中 CCNode and CCAction
  • 原文地址:https://www.cnblogs.com/Andrew520/p/8862394.html
Copyright © 2011-2022 走看看