zoukankan      html  css  js  c++  java
  • golang 内存对齐&int8/int16/int32/int64区别

    计算机的基本的存储单元有:
       位(bit):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位。二进制的一个“0”或一个“1”叫一位。
       字节(Byte,B):计算机中数据的基本单位,每8位组成一个字节。各种信息在计算机中存储、处理至少需要一个字节
     
    ASCIIS码: 1个英文字母(不分大小写)= 1个字节的空间
           1个中文汉字 = 2个字节的空间
                     1个ASCII码 = 一个字节
    UTF-8编码:1个英文字符 = 1个字节
                       英文标点  = 1个字节
                       1个中文(含繁体) = 3个字节
               中文标点 = 3个字节
    Unicode编码:1个英文字符 = 2个字节
                        英文标点  = 2个字节
                        1个中文(含繁体) = 2个字节
                        中文标点 = 2个字节              
    字(Word):两个字节称为一个字。汉字的存储单位都是一个字。
     

    扩展的存储单位有:

       计算机存储容量大小以字节数来度量,1024进位制:
          1024B=1K(千)B  
     
               1024KB=1M(兆)B 
     
               1024MB=1G(吉)B 
     
               1024GB=1T(太)B 
       这是常用的五个,至于PB,EB,ZB,YB,BB,NB,DB几乎在日常使用中是不会遇到的。
    而Int8,Int16,Int32,Int64,后面的数字就代表这个数据类型占据的空间。
           Int8, 等于Byte, 占1个字节.
        Int16, 等于short, 占2个字节. -32768 32767
        Int32, 等于int, 占4个字节. -2147483648 2147483647
        Int64, 等于long, 占8个字节. -9223372036854775808 9223372036854775807
     
    go 中  string 占16个字节
      另外, 还有一个Byte, 它等于byte, 0 - 255.
     
    type One struct {
    	id1 int8
    	id2 int32
    	id3 int8
    }
    type Two struct {
    	id1 int32
    	id2 int8
    	id3 int8
    }
    
    func main() {
    	fmt.Println(unsafe.Sizeof(One{}))       //size为12
    	fmt.Println(unsafe.Sizeof(Two{}))       //size为8
    	fmt.Println(unsafe.Sizeof("222222222")) //size为16
    	fmt.Println(unsafe.Sizeof(111111111))   //size为8
    	fmt.Println(unsafe.Sizeof(1.1))         //size为8
    }
    

     这样我们在写代码定义结构体变量时,注意设定他的大小和顺序

    对齐内容可看一篇文章:https://zhuanlan.zhihu.com/p/53413177

     
                    
  • 相关阅读:
    开发PHP扩展(一)
    ssh 使用技巧
    安装scribe
    PHP扩展中定义一个类
    PHP扩展的加载流程
    PHP扩展中访问全局变量$_POST,$_GET,$_SERVER等
    PHP的HashTable(一)
    PHP的HashTable(二)
    MVC ScriptBundle自定义排序。
    解决bootstrap和easyUI部分css类冲突问题。
  • 原文地址:https://www.cnblogs.com/already/p/13708251.html
Copyright © 2011-2022 走看看