【温控器通信遇到的问题】

C#中温控器通信遇到的问题总结(1)


24应届生实习转正后开始上手负责项目中部分内容,主要负责温控器通信部分。工作的主要内容为向台达中发送指令,读取和写入补偿值,在发送指令时发现指令发送正确,但是就是接收不到正确的数据,困扰我好久的问题在求助公司大佬后发现在字节转换部分出了问题。在字节转换的部分自己一直晕晕乎乎,等到任务完成后整理总结这一部分相关的内容,给大家一个参考也欢迎指出来我的不足。

Int16, Int32,Int64的用法

  1. Int16(short)内存占用2个字节(16位)。范围在-32768 ~ 32767。

  2. Int32(int)内存占用4个字节(32位)。范围在-2147483648 ~ 2147483647。

  3. Int64(long)内存占用8个字节(64位)。范围在 -9223372036854775808 ~
    9223372036854775807。

Convert.ToInt16,Convert.ToInt32的使用

C#中Convert方法用于任意数据类型转换(在不超过数据类型范围的情况下)。 由于要显示从指令中获取的温度,得到的是一个负的温度。

原先使用的转换方式是Convert.ToInt32(“FF38”,16)得到的内容为65536,数据内容指定不对,后改为Convert.ToInt16(“FF38”,16)得到-200。
Convert.ToInt16(“FF38”,16)在计算机中,Int16 类型的值通常使用 16 位(2 字节)的二进制补码形式来表示,将其转换为原码对应的十进制即为-200。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值