社区
C#
帖子详情
C#里怎样将Big Endian 转换为 Little Endian的字节读取顺序?
ArcJeremy
2005-04-08 01:40:34
我在读一个文件头的时候发现有些字段是Big Endian顺序的(都为int或double型)
想把它转换为Little Endian的读取顺序,不知道.net 类库里有没有相关的类方法之类的还是只能老老实实自己写一个?
...全文
806
8
打赏
收藏
C#里怎样将Big Endian 转换为 Little Endian的字节读取顺序?
我在读一个文件头的时候发现有些字段是Big Endian顺序的(都为int或double型) 想把它转换为Little Endian的读取顺序,不知道.net 类库里有没有相关的类方法之类的还是只能老老实实自己写一个?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
owe
2005-04-13
打赏
举报
回复
//读取一个Int32型
private int ReadIntByByte( BinaryReader bReader)
{
byte[] b = new byte[4];
for(int i = 3; i >= 0; i--)
{
b[i] = bReader.ReadByte();
}
return BitConverter.ToInt32(b, 0);
}
demonfox
2005-04-13
打赏
举报
回复
是吗?我没有亲自试过,你有测试文件么?发一个给我,我试试看:
yin_hu@msn.com
ArcJeremy
2005-04-13
打赏
举报
回复
TO:demonfox(坐井观天)
我在MSDN里也查到了这个方法,但是好像不行。不知道是我的系统问题还是什么不管我用Unicode文本文件还是二进制文件都还是以Little Endian的方式读。
TO:xiaohaige(无聊聊)
这个方法不错也很方便,调试也通过了。不过我还有Double类型的,MSDN里介绍好像只支持short,int,long这三个类型。
wjcking
2005-04-09
打赏
举报
回复
up
demonfox
2005-04-09
打赏
举报
回复
可以的,只要是2个bytes的倍数就可以(就是偶数个bytes,int和double都是4bytes),如果是ASCII Code(1个byte),就不行了。
xiaohaige
2005-04-08
打赏
举报
回复
用IPAddress的HostToNetworkOrder和NetworkToHostOrder
ArcJeremy
2005-04-08
打赏
举报
回复
我读的是二进制文件,里面都是int或者double类型~
这样行吗?
demonfox
2005-04-08
打赏
举报
回复
直接作为BigEndian读进来。不过下面的方法只能用于Unicode编码:
System.Text.Encoding encoding = System.Text.Encoding.BigEndianUnicode;
StreamReader reader = new StreamReader("TextFile.txt", encoding);
string line = reader.ReadLine();
while (line != null)
{
Console.WriteLine(line);
line = reader.ReadLine();
}
计算机
Li
ttle
-
Endian
和
Big
-
Endian
(大小
字节
序、大小端)
Li
ttle
-
Endian
和
Big
-
Endian
表示的是计算机
字节
顺序
,所谓的
字节
顺序
指的是长度跨越多个
字节
的数据的存放形式(若只有一个
字节
则不需考虑
字节
序的问题)。对于整型、长整型等数据类型,
Big
endian
认为第一个
字节
...
二进制读写中的大字端(
Big
Endian
)和小字端(
Li
ttle
Endian
)
Big
Endian
and
Li
ttle
Endian
关于
Big
Endian
和
Li
ttle
Endian
Big
Endian
和
Li
ttle
Endian
一、
字节
序 来自:http://ayazh.gjjblog.com/archives/1058846/ 谈到
字节
序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用
big
...
Big
Endian
和
Li
ttle
Endian
结果播放器
读取
的数据和我在同样位置写入的不符,遂引出了
Big
Endian
和
Li
ttle
Endian
的概念(“
Endian
”应该怎么发音?我也不知道,先把它读作”安迪安”,有谁知道告诉我^_^),最终我写了一个
转换
类在写文件时将 ...
Big
Endian
和
Li
ttle
Endian
区别
就拿上面的0x12345678来说,你的程序传递给别人的一个数据,将指向0x12345678的指针传给了JAVA程序,由于JAVA采取
big
endian
方式存储数据,很自然的它会将你的数据翻译为0x78563412。是的,就是这种后果。而假如要...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章