如何将数字从无符号转换为有符号?
有符号:-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 < 0) {
ival = ival + 4294967296;
}
}
return ival;
}
function convertDWordToInt(ival) {
if (isNaN(ival) === false) {
if (ival > 2147483647) {
ival = ival - 4294967296;
}
}
return ival;
}