Javascript 位操作设计

Javascript 位操作设计,javascript,jquery,algorithm,bit-manipulation,Javascript,Jquery,Algorithm,Bit Manipulation,我正在创建一个插件。我有一组不同类型的记录值。所以,假设,对于每个记录,我有以下数据 类型:值 A:a1 B:b1 C:c1 D:d1 现在,对于每个记录,我想保留一个应用数组- 类型:应用型 A:是的 B:错 C:是的 D:是的 现在,我对应用数组中的A、B、C、D的所有值取&&并根据final和的真/假来决定记录是否有效 现在,我不想为这样的事情保留和排列。我想用0/1值保留4位,并使用更快的逐位运算获取“&”。我想知道我怎样才能实现这样的事情?n位变量是什么样子的 我正在创建一个插

我正在创建一个插件。我有一组不同类型的记录值。所以,假设,对于每个记录,我有以下数据

  • 类型:值
  • A:a1
  • B:b1
  • C:c1
  • D:d1
现在,对于每个记录,我想保留一个应用数组-

  • 类型:应用型
  • A:是的
  • B:错
  • C:是的
  • D:是的
现在,我对应用数组中的A、B、C、D的所有值取&&并根据final和的真/假来决定记录是否有效

现在,我不想为这样的事情保留和排列。我想用0/1值保留4位,并使用更快的逐位运算获取“&”。我想知道我怎样才能实现这样的事情?n位变量是什么样子的

我正在创建一个插件,所以我不会事先知道是否会有4个这样的类型。可以有任意n个这样的类型(n<32),因此我必须保留n个这样的位

到目前为止,我就是这么想的

  • 我将保留值为0的和整数变量。(所有位将为0 最初)我不知道如何使用32位/n位来保持和整数
  • 我会记下我有多少个n类型
  • 要设置为true,我必须以某种方式将第I位设置为1,或者 如果我必须将其设置为false,则设置为0。我不知道怎么做
  • 要查找和,我将查找第一位,它在这些中等于0 n位。如果有一个0,我的最终值是0,否则是1
  • 语言-javascript/jquery


    任何只包含函数签名的示例都会有帮助

    Javascript具有通常的
    Javascript具有通常的
    
    我将保留值为0的和整数变量。(所有的位最初都是0)我不知道如何保持32位/n位的整数

    JavaScript没有整数类型,但是
    Number
    类型保证能够表示−2到2英寸−1.您可以在
    数字
    上使用,就像它们是32位有符号整数一样

    要设置为true,我必须将第I位设置为1,如果必须将其设置为false,则必须将其设置为0。我不知道怎么做

    要将
    i
    设置为1,请执行以下操作:

    x |= (1 << i)
    
    要查找和,我将在这n个位中查找第一个等于0的位。如果有一个0,我的最终值是0,否则是1

    有一种更简单的方法可以检查二进制中的整数
    x
    是否等于
    n
    个数

    var isAllOnes = x === (1 << n) - 1;
    
    var isAllOnes=x==(1)
    我将保留值为0的and integer变量。(所有位最初都是0)我不知道如何保持32位/n位的and integer

    JavaScript没有整数类型,但是
    Number
    类型保证能够表示−2到2英寸−1.您可以在
    数字
    上使用,就像它们是32位有符号整数一样

    要设置为true,我必须将第I位设置为1,如果必须将其设置为false,则必须将其设置为0。我不知道如何操作

    要将
    i
    设置为1,请执行以下操作:

    x |= (1 << i)
    
    要查找和,我将在这n个位中查找第一个等于0的位。如果有0,我的最终值是0,否则是1

    有一种更简单的方法可以检查二进制中的整数
    x
    是否等于
    n
    个数

    var isAllOnes = x === (1 << n) - 1;
    

    var isAllOnes=x==(1)我不是javascript专家,但AFAIK javascript支持位移动。那么,为什么要浪费时间在
    pow
    ?似乎效率很低,而且对我来说也不完全是描述性的。@Paul谢谢!我也不是专家,我回答说我基本上做了几秒钟的谷歌搜索,我在按位操作的名称上找到的第一个资源就是这样做的别提位转移。你说得对,位转移是受支持的,不过,我会相应地更新我的答案。不是javascript专家,但AFAIK javascript支持位转移。那么为什么要浪费时间在
    pow
    ?对我来说似乎效率很低,也不完全是描述性的。@Paul谢谢!我也不是专家,回答having基本上做了几秒钟的谷歌搜索,我在按位操作的名称上找到的第一个资源没有提到位移位。不过,你说得对,位移位是受支持的,我会相应地更新我的答案。你可能想看看javascript中的代码。IDK如果这是一个合适的源代码,那么javascrip就没有那么有效到目前为止还没有。谢谢@Paul的帮助。你可能想看看javascript。IDK如果这是一个合适的源代码,到目前为止还没有使用javascript。谢谢@Paul的帮助。这非常有帮助。我将尝试实现它。谢谢很多人!谢谢。这非常有效。我不知道我可以使用数字(整数)执行位运算。(跛脚我)这很有帮助。我将尝试实现它。非常感谢!谢谢。这非常有效。我不知道我可以使用数字(整数)执行位运算。(跛脚我)