首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(0) | 引用(0) | 阅读2044次
bit 顺序网络、主机字节顺序

上次是 字节顺序,好歹还听说过,这次居然是 BIT 顺序

C#有个 BITARRAY,感觉不错,把BYTE转成BIT数组,这样判断位就方便多了

可是,居然有这个问题。

0X80 0X 1000 0000

读到BITARRAY,居然成了 0000 0001

简直吐血,所有的BIT BYTE转换看来http://www.shengfang.org是全乱了。

public static byte Reverse(byte inByte)
{
byte result = 0x00;
byte mask = 0x00;

for ( mask = 0x80;
                                Convert.ToInt32(mask) > 0;
                                mask >>= 1)
{
result >>= 1;
byte tempbyte = (byte)(inByte & mask) ;
if (tempbyte != 0x00)
result &line;= 0x80;
}
return (result);
}

一般协议都会前几个字节代http://www.shengfang.org表长度之类的。例如

0X00 0X01 代表 1

网络传输过来是如此,如果使用BitConverter.ToUInt16,那么成为了 0x01 0x00 256

据称这是所谓的 网络、http://www.shengfang.org 主机字节顺序

谁前谁后的问题

IPAddress.HostToNetworkOrder 方法 http://www.shengfang.org 名字不错,却只是参数只能是 INT

所以我的办法是 先把 BYTE[] 反转一下

pubexp = r.ReadUInt32() ;   //get public exponent
Exponent = BitConverter.GetBytes(pubexp); //returns bytes in little-endian order
Array.Reverse(Exponent);    //convert to BIG-endian order


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/bitbytesort.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1110170872

2005年3月7日12:47星期一  [Dev开发] 追踪此文的RSS
提示:
此文还没有评论。

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1790
在线: 7||用户: 2563 [列表]
今日:691||到访:2682330
Rss:841978||评论:1585

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8