整数反转
一、题目
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
提示:
-231 <= x <= 231 - 1
来源:力扣(LeetCode)
二、解法
var reverse = function(x) {
var res=0;
while(x){
res =res*10+ x%10;
if(res>(Math.pow(2,31)-1) || res<(-Math.pow(2,31))){
return 0
}
x = ~~(x/10)
}
return res;
};
三、知识拓展
js中~~
的用法
~是js里的按位取反操作符,
~~就是执行两次按位取反 ,转换为数字型
~~true -> 1
~~false -> 0
~~"" -> 0
~~[] -> 0
~~undefined -> 0
~~!undefined -> 1
~~null -> 0
~~!null -> 1
//整数转化
~~-12.8 -> -12
~~12.8 -> 12
取余 %
取余运算的结果的符号与被除数的符号相同。
例如 -10 % 3
= -1