欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-07 12:59:24
1、问题:网关解析正确,我.net这边解析错误,原因是,本来是无符号的,我搞成了有符号的了。 3、word:无符号双字节整形 5、0x800a转十进...

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

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

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

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

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

5、0x800a转十进制为32758

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

原因是:以下两种写法是等价的,ipaddress.networktohostorder()不能接收uint16类型,所以把bitconverter.touint16(arr, 0)强制转化成int32再转序的。

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

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

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

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

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

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

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

原理:int16比uint16左边多了ffff,应该这个就是符号吧

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

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

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