zoukankan      html  css  js  c++  java
  • javascript中的类型转换(进制转换|位运算)

    1:parseInt(string) : 这个函数的功能是从string的开头开始解析,返回一个整数

    parseInt("123hua");  //输出  123
    parseInt("123");     //输出  123
    parseInt("12.3");    //输出  12
    parseInt("hua");     //输出  Nan

    2:另外parseInt()方法还有其他模式,就是可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数

    parseInt("10", 16);   //输出  16
    parseInt("10", 2);    //输出  2
    parseInt("10s", 2);    //输出  2
    parseInt("10", 8);    //输出  8
    parseInt("10", 10);   //输出  10
    parseInt("0x10");     //输出  16 0x十六进制的表示

    3.parseFloat():这个函数与parseInt()方法的处理方式相似。

    parseFloat("123hua");  //输出  123
    parseFloat("123");     //输出  123
    parseFloat("12.3");    //输出  12.3
    parseFloat("hua");     //输出  Nan

    4.Number():强制类型转换,与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。

    Number(false)    //输出  0
    Number(true)     //输出  1
    Number(undefined) //输出  NaN
    Number(null)      //输出  0
    Number("1.2")    //输出  1.2
    Number("12 ")    //输出  12
    Number("1.2.3 ") //输出  NaN
    Number(new Object()) //输出  NaN

    5:Number 类型的 toString() 方法比较特殊,它有两种模式,即默认模式和基模式。
    采用默认模式,toString() 方法只是用相应的字符串输出数字值(无论是整数、浮点数还是科学计数法)

    var iNum = 10;
    alert(iNum.toString(2));    //输出 "1010"
    alert(iNum.toString(8));    //输出 "12"
    alert(iNum.toString(16));    //输出 "A"
    (12).toString();            //输出 "12"
    (12).toString(2);           //输出 "1100"
    "12".toString(2);           //输出 "12"

    6:Boolean 类型的 toString() 方法只是输出 "true" 或 "false"

    var bFound = false;
    alert(bFound.toString());    //输出 "false"

    7:位运算符是在数字底层(即表示数字的 32 个数位)进行操作的。
    位运算 NOT 由否定号(~)表示

    //位运算 NOT 由否定号(~)表示
    var iNum1 = 25;        //25 等于 00000000000000000000000000011001
    var iNum2 = ~iNum1;     //转换为 11111111111111111111111111100110
    alert(iNum2);        //输出 "-26"
    //位运算 NOT 实质上是对数字求负,然后减 1,因此 25 变 -26
    var iNum1 = 25;
    var iNum2 = -iNum1 - 1;
    alert(iNum2);    //输出 -26

    位运算 AND 由和号(&)表示,直接对数字的二进制形式进行运算,都是1为1,否则为0

    var iNum1 = 25;        //25 等于 0000 0000 0000 0000 0000 0000 0001 1001
    var iNum2 = 3;         //3  等于 0000 0000 0000 0000 0000 0000 0000 0011
    alert(iNum1 & iNum2);//输出     //1 等于 0000 0000 0000 0000 0000 0000 0000 0001

    位运算 OR 由符号(|)表示,也是直接对数字的二进制形式进行运算,都是0为0,否则为1

    var iNum1 = 25;        //25 等于 0000 0000 0000 0000 0000 0000 0001 1001
    var iNum2 = 3;         //3  等于 0000 0000 0000 0000 0000 0000 0000 0011
    alert(iNum1 | iNum2);//输出     //27 等于 0000 0000 0000 0000 0000 0000 0001 1011

    位运算 XOR 由符号(^)表示,当然,也是直接对二进制形式进行运算,不同为1,相同为0

    var iNum1 = 25;        //25 等于 0000 0000 0000 0000 0000 0000 0001 1001
    var iNum2 = 3;         //3  等于 0000 0000 0000 0000 0000 0000 0000 0011
    alert(iNum1 ^ iNum2);//输出     //26 等于 0000 0000 0000 0000 0000 0000 0001 1010

    左移运算由两个小于号表示(<<)。它把数字中的所有数位向左移动指定的数量。

    var iNum1 = 2;            //等于二进制 10
    var iNum2 = iNum1 << 5;    //等于二进制 1000000 十进制 64
  • 相关阅读:
    【Educational Codeforces Round 101 (Rated for Div. 2) C】Building a Fence
    【Codeforces Round #698 (Div. 2) C】Nezzar and Symmetric Array
    【Codeforces Round #696 (Div. 2) D】Cleaning
    【Codeforces Round #696 (Div. 2) C】Array Destruction
    【Educational Codeforces Round 102 D】Program
    【Educational Codeforces Round 102 C】No More Inversions
    【Good Bye 2020 G】Song of the Sirens
    【Good Bye 2020 F】Euclid's nightmare
    使用mobx入门
    requestAnimationFrame 控制速度模拟setinterval
  • 原文地址:https://www.cnblogs.com/zhao123/p/5801109.html
Copyright © 2011-2022 走看看