解协议时有符号和无符号整形处理

Dot.Net admin 1143℃ 0评论

来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=309
GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
http://cnsendnet.taobao.com

1、问题:网关解析正确,我.net这边解析错误,原因是,本来是无符号的,我搞成了有符号的了。

1

3、WORD:无符号双字节整形

2

3

5、0x800A转十进制为32758

4

原因是:以下两种写法是等价的,IPAddress.NetworkToHostOrder()不能接收UInt16类型,所以把BitConverter.ToUInt16(arr, 0)强制转化成Int32再转序的。

5

6、写法一:一定要“网络序转主机序”后,再取绝对值,否则会有问题,写法一也有问题,最好不要用

6

事实证明,写法一也有问题

7

7、写法二:“网络序转主机序”后,再转化成UInt16无符号双字节整形

8

原理:Int16比UInt16左边多了FFFF,应该这个就是符号吧

9

10

 

 

来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=309
GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
http://cnsendnet.taobao.com

转载请注明:森大科技官方博客 » 解协议时有符号和无符号整形处理

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址