本帖最后由 lizheng13041 于 2011-10-24 16:55:44 编辑

解决方案 »

  1.   

    55555 string(int,2) 什么之类的方法都试过了,难道是要强行定义BTYE的长度?
      

  2.   

    查sdk呀...
    http://technet.microsoft.com/zh-cn/system.io.binarywriter.write.aspx(byte)tt3[x, y, z] 写进去必然小于等于  255tt3[x, y, z] 写进去有可能大于 255.你几种方式产生的输入都不同, 怎么能保证输出相同呢?
      

  3.   

    byte写进去是1byte,int写进去是4bytes,大小肯定不同。
    即使是0,如果是int类型写进去也是4bytes。但我想知道,为什么是180K呢?
    不应该是64*64*64个数据么?最少不也得256K么
      

  4.   

    3楼的大哥,能看懂FORTRAN吗?不知道FORTRAN中的那个写2进制等于C#的那种写入呀?
      

  5.   

    奇怪,我的测试代码的输出文件是256k
    using (FileStream fs = File.Create("c:\\temp.bin"))
                {
                    using (BinaryWriter bw = new BinaryWriter(fs))
                    {                    for (int z = 1; z <= 64; z++)
                            for (int y = 1; y <= 64; y++)
                                for (int x = 1; x <= 64; x++)
                                    bw.Write(((byte)0x31));
                    }
                }
    写入(byte)0x00也是同样的结果是不是tt3 里面有问题
      

  6.   

    在vs中用binary的方式打开C#和FORTRAN的输出文件,看看有什么不同。
      

  7.   

    我勒个晕,折腾了我几个小时。我明白了,fortran里面用的是4个字节的,把C#中的int 转换成short 就可以了,谢谢大家的帮助~~~~