在C#中将无符号16位int转换为带符号的16位int

Dyl*_*ter 6 .net c# unsigned signed bit-manipulation

我正在为一个机器人控制器编写一个数据记录解析器,从数据日志中得到的是一个0到65535范围内的数字(如果我没弄错的话,这是一个16位无符号整数).我正在尝试将其转换为带符号的16位整数以显示给用户(因为这是记录器更改之前的实际数据类型).

有人可以帮我一把吗?

例:

值应该是什么(0,-1,-2,-3,-4)

值是什么(0,65535,65534,65533,65532)

pbl*_*cci 12

你试过明确的演员吗?

UInt16 x = 65535;
var y = (Int16)x; // y = -1
Run Code Online (Sandbox Code Playgroud)