签署无签名和副Versa(算术)
如何将数字从无符号转换为有符号?
签名:-32768到32767无符号:0到65535
我在JavaScript中解决了这个问题。 情况是我有一个例如从0到65535的数字,我想将其转换为合理的有符号值。
例如:65535应该变为-1。
请不要使用任何与位相关的操作,而是使用算术。
我想这应该是语言无关的,假设我们使用的数据类型足够大。
更新:根据答案进一步实施:
function convertWordToShort(ival) { if (isNaN(ival) === false) { if (ival > 32767) { ival = ival - 65536; } } return ival; } function convertShortToWord(ival) { if (isNaN(ival) === false) { if (ival < 0) { ival = ival + 65536; } } return ival; } function convertIntToDWord(ival) { if (isNaN(ival) === false) { if (ival 2147483647) { ival = ival - 4294967296; } } return ival; }
只测试数字是否超过一半,然后减去模数。
if(x > 32767) {x = x - 65536;}
- 如何在ASP.Net中发送用于Web请求集的身份validation标头
- 将数组的C#字符串或字符串分配给javascript数组
- 我可以在javascript脚本方法中获取转发器项目数吗?
- 如何在jqxgrid中使用后面代码中的数据表
- 将ActionResult返回到对话框。 ASP.NET MVC
- 排序不使用Json Result给出编码输出
- 如何在asp.net Ajax更新pannel中使AsyncPostback之后的JQuery masked-input插件工作?
- 无法在jquery对话框中单击asp.net按钮
- Asp .NET Button – OnClientClick =“return function()”vs OnClientClick =“function()”