JavaScript中的进制转换、或运算、与运算与位运算

220 阅读2分钟

一、进制之间的转换(代码实现)


思路:以十进制数作中间量,其他进制之间互相转换前先转换成十进制。


1. 其他进制转换成十进制

> parseInt(非十进制数,第一个参数进制数)

此方法可以将非十进制数字转换成十进制数字
var num=111;
alert(parseInt(num,2));  // 7

2. 十进制转换成其他进制

> 十进制数.toString(要转换成的进制)

此方法可以将十进制数转换成其他任意的进制数
var num=9;
alert(num.toString(2)); // 二进制,111
alert(num.toString(8)); // 8进制,11



二、或运算(||)、与运算(&&)

> 用法一,表示判断

表达式1 || 表达式2
两个表达式中有一个为true,整体返回true,否则返回false

表达式1 && 表达式2
两个表达式必须都为true,整体返回true,否则返回false

> 用法二,赋值(短路操作)

var val=表达式1 || 表达式2;
val会被赋值为第一个为true的表达式(数据类型也会赋给val),
如果所有的表达式都为false,val会被赋值为最后一个表达式(数据类型也会赋给val)

var val=表达式1 && 表达式2;
val会被赋值为第一个为false的表达式(数据类型也会赋给val),
如果所有的表达式都为true,val会被赋值为最后一个表达式(数据类型也会赋给val)



三、位运算

> 按位或(|)

计算方法:两个数字转换成二进制进行比较只有位值都为0时才取0,否则取1
例如:14|15 (14  转换成二进制  1110
            15  转换成二进制  1111
            | 的结果    1111 ----》结果15)

> 按位与(&)

计算方法:两个数字转换成二进制进行比较只有位值都为1时才取1,否则取0
例如:14&15 (14  二进制  1110
            15 二进制    1111
            & 的结果    1110  ----》结果14)

> 按位异或(^)

计算方法:两个数字转换成二进制进行比较只有位值不相等时才取1,否则取零
例如:14^15  (14  二进制  1110
              15  二进制  1111
              ^ 的结果  0001 ----》结果1)

> 位运算NOT(~)

计算方法:数字求负,再减1
例如:~14  的结果是 -15