• Javascript 数的表示与位运算


    /*
     *   Javascript int 型 32位,默认为有符号整数,且第32位,即符号位开发者不可访问
     *
     *   在 原理中: 数的表示 正数的不变。负数:反码为原码除符号位取反,补码为反码+1
     *    4位:    						8位:
     *             真值:6(+110)  -6(-110)				6(+110)  	-6(-110)
     *      
     *             原码: 0110      1110                           0000 0110    1000 0110
     *
     *             反码:   0110      1001                          0000 0110    1111 1001
     *
     *             补码:   0110      1010                          0000 0110    1111 1010
     */
    //Javascript 运行 
    (6).toString(2)    //"110"
    (-6).toString(2) //"-110"
    parseInt('-110',2)// -6
    parseInt('110',2) //  6
    
    //下面是关键
    (~6).toString(2) //"-111" 即-7   式1
    (~-6).toString(2)// "101" 即 5   式2
    /*
    式1: 6 :补码 0110 取反 1001 这是一个补码表示的数 其真值为 -111 即-7
    式2:-6 :补码 1010 取反 0101 同理,但这是个正数   故真值为 +101 即 5
    
    可见 1:Javascript 数的表示 是用 补码表示的 (输出是真值表示)
    
         2:Javascript 取反操作 是包含 符号位的
    	 
    	 3:Javascript 数的位运算以数的实际位数为基准(正数符号位为0),而不是确定的32位
    */
    

      

  • 相关阅读:
    Codeforces 798C
    Codeforces 777E
    Codeforces 801C Voltage Keepsake(二分枚举+浮点(模板))
    【NOIP 2017】宝藏
    利普希茨
    【NOIP2008】双栈排序
    捕老鼠
    失格
    【JZOJ4307】喝喝喝
    Blocks
  • 原文地址:https://www.cnblogs.com/i2u9/p/j1.html
Copyright © 2020-2023  润新知