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

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张图片

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(解协议时有符号和无符号整数型处理)