int 100占四个字节,每个字节分别存储了什么;string 100在的四个字节中又分别存储了什么;本人刚接触通讯方面的,发现本质的存储还不了解,希望各大神指点,给些内存、地址什么的方面资料看看内存通信存储

解决方案 »

  1.   

    晕倒,你还是看看C语言吧,C语言或者汇编语言的最基础的入门教程都有这类资料,int的四个字节分别是00 00 00 64,但次序在不同平台上各有不同,有些是00 00 00 64,有些正好反过来64 00 00 00,这个和通讯是有关的,socket必须考虑字节次序问题,
      

  2.   

    字符串就更复杂了,一般来说string "100"在内存中占据6个字节,但在文件中可能是6个字节,也可能是3个字节,字符串会被视为字符的序列,字符串存储的是字符编码,所以存储内容是什么,要看使用什么样的字符编码,一般来说c#内存中使用unicode编码,在文件中通常用utf8编码其实也是unicode的一种形式,
      

  3.   

    我刚才试了下 100的十六进制存储的四位是 “64 00 00 00”;"100"十六进制存储的四位“03 31 30 30”;int十六进制存储的大概我知道了,字符串的第一位存储的是字符串长度值,第二位存储的是第一个字符,第三位存储的是第二个字符……,而字符串里的字符1为什么是31,0是30……,我记得Accii码的0表示是48……,这是什么表示结果?
      

  4.   

    "100"十六进制存储的四位“03 31 30 30”;你用你的电脑上的科学计算机算一下 十六进制31 对应是十进制49 ASSII 49对应的是1 30对应的十进制是48 ASSII对应的是 0 
      

  5.   

    http://wenku.baidu.com/view/5b9f32a9d1f34693daef3e71.html 
    这个是ASSIC表里面对应的字符我刚才那样写 就是因为你看的是十进制的ASSIC 所以想告诉你十六进制 31 对应十进制 49 对应的字符是 1 你看下我发的连接表 都可以找到的!
      

  6.   

    这个ASSIC 表比较全了自己去看就明白了,希望能帮到你!