标签: bits

glClear函数:关于参数的问题

我想了解glClear功能的深层次.我理解它的一般解释 - >清除颜色,深度,模板和积累的缓冲区,但我还有其他问题.我的朋友假设您清除了代表内存中颜色,深度,模板和积累的位(堆栈?).通过指定和应用参数:(例如,仅颜色和深度)'掩码',您只清除存储器中的那些位(因此"按位操作").

举个例子:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
Run Code Online (Sandbox Code Playgroud)

www.khronos.org对"掩码"的参数说明.mask:掩码的按位OR,表示要清除的缓冲区.

这是我的问题:

  • 参数GL_COLOR_BUFFER_BIT和GL_DEPTH_BUFFER_BIT各占1位内存吗?或者它们表示了多少位(我想了解如何实际应用位掩码)?
  • 我没看到"OR"掩码如何取消位?如果对标记为"set"(而不是"unset")的位使用"OR",它仍然会返回零(1或0仍然返回1)?我觉得这完全错了吗?我在这里错过了什么吗?
  • 什么是"或"标志(管道); 为什么这些参数没有用通常的逗号分隔,而不是在实际函数中声明的按位操作"OR"?

也许我很困惑,因为我是这个领域的新手.能否请您详尽解释一下?我不想在OpenGL中继续这些问题时跳过这些问题; 我想知道我在做什么,并且这种理解可能会帮助我.谢谢!

c memory opengl bits

1
推荐指数
1
解决办法
1852
查看次数

Xor从重要位开始

int a= 21;//10101
int b = 269;//100001101
Run Code Online (Sandbox Code Playgroud)

a^b 会做

    10101
100001101
---------
100011000
Run Code Online (Sandbox Code Playgroud)

但我想做

10101
100001101
---------
001011101
Run Code Online (Sandbox Code Playgroud)

有没有办法在不改变原始数字的情况下做到这一点?

java bits bit-manipulation xor

1
推荐指数
1
解决办法
52
查看次数

按位乘法来实现结果

是否存在一组通用规则,通过乘以已知和未知数字来实现某个数字.例如假设x = 13且z = 9

有没有办法找到这样的

    x * y = z     
=> 13 * y = 9
Run Code Online (Sandbox Code Playgroud)

我不想将它们用作数学整数,而是用于比特.所以,我想保持z为int.显然,位表示中存在溢出,但我不确定如何在没有暴力的情况下找到z强制在32位机器中的所有值.我认为你的数字很小,是负数.

注意:这不是或者是一个新的赋值,因此您可以将x和y更改为任何内容,这些只是示例.

c bits bit-manipulation bit-shift multiplication

1
推荐指数
1
解决办法
156
查看次数

在Java中,按位不是双倍的

在Java中,按位非运算符(~)反转整数或长整数位.但为什么这不可能double?是否有任何使用此操作的方法double?我正在用Java编写自己的编程语言(这不是一个家庭作业),我相信应该包括双位的按位.

任何使用按位而不是双打的方法?

编辑:这不是如何对浮点数执行按位操作的重复,因为我使用Java而不是讨论过的C.我也知道使用语言的语法没有可能的方法,但是答案似乎把它投到了double一个int.我需要保持双倍的原样,而不是将其改为intlong.

编辑:按位不是我认为不会.它似乎*-1 - 1在输入上执行.因此,我的问题现在变成:

我希望将双精度变为二进制(请参阅我的另一个问题 ),将所有位(0到1和1到0)反转,然后将其转换回double.

java bits

1
推荐指数
1
解决办法
1951
查看次数

如何将文件读入 Int 数组

在我的应用程序文档文件夹中,我有一个文件,我试图将每个字节读入一个数组,UInt8其中每个元素代表一个字节。我该怎么做呢?该文件恰好称为 Q1.dat。

这是我失败的尝试:

func readArray() -> [Int]? {
    if let arrayPath: String = createArrayPath() {
        if let arrayFromFile: [Int] = NSArray(contentsOfFile: arrayPath) as? [Int] {
            return arrayFromFile
        }
    }
    return nil
}

func createArrayPath () -> String? {
    if let docsPath: String = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last {
        return ((docsPath as NSString).stringByAppendingPathComponent("Q1") as NSString).stringByAppendingPathExtension("dat")
    }
    return nil
}
Run Code Online (Sandbox Code Playgroud)

arrays bits swift

1
推荐指数
1
解决办法
5036
查看次数

Java将00010打印为8

解决这个问题的解密程序我用Java编写.这是有问题的代码

public static int int_to_int(int input)
{
    int[] value_array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
            11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
            21, 22, 23, 24, 25, 26};
    int[]bin_array= {00000, 00001, 00010, 00011,
            00100, 00101, 00110, 00111,
            01000, 01001, 01010, 01011, 01100,
            01101, 01110,  01111, 10000, 10001,
            10010,  10011, 10100, 10101, 10110,
            10111, 11000,11001, 11010, 11011};
    for(int i=0; i <27; i++)
    {
        System.out.println("hello");
        if(input==value_array[i])
        {
            System.out.println("returning: " + bin_array[i] + "at: …
Run Code Online (Sandbox Code Playgroud)

java encryption byte bits

1
推荐指数
2
解决办法
187
查看次数

如何在 JAVA 中获得 0 和 1 位的所有可能排列

我需要长度为 3 的位的排列输出(顺序无关紧要,因为 0 和 1 的初始组合是随机生成的):

[0,0,0]

[0,0,1]

[0,1,0]

[0,1,1]

[1,0,0]

[1,0,1]

[1,1,0]

[1,1,1]

我已经完成了,但似乎有重复,并且没有显示一些可能的排列,我不知道为什么。这是我的代码:

'

  ArrayList<Item> itemsAvailable = new ArrayList<Item>();
  ArrayList<Integer>bits = new ArrayList<Integer>();
  ArrayList<ArrayList<Integer>> tried = new ArrayList<ArrayList<Integer>>();

    itemsAvailable.add(new Item(5,4));
    itemsAvailable.add(new Item(12,10));
    itemsAvailable.add(new Item(8,5));

    System.out.println("itemsAvailable: " + itemsAvailable);

    Random r = new Random();

    //permutations
    for(int i = 0; i < Math.pow(2,itemsAvailable.size()); i++){
        //Generate random bits

        for(int j = 0; j < itemsAvailable.size(); j++){
            int x = 0;

            if (r.nextBoolean())
                x = 1;

            bits.add(x);

        }


        System.out.println("Added to bits …
Run Code Online (Sandbox Code Playgroud)

java random bits permutation

1
推荐指数
1
解决办法
1056
查看次数

无限循环是否会由它自己结束

我们假设我们有以下循环:

    for (int i = 1; i < 2; i--)
    {
        cout << i << endl;
    }
Run Code Online (Sandbox Code Playgroud)

毫无疑问,这是一个无限的循环.但是,我的问题是,它会运行多长时间?因为我的教授说,鉴于int是4 bytes = 32 bits,它可以存储一个数字-2147483648 to 2147483647.鉴于此,他接着说,在一个for循环中,如果它到达其中一个数字,并且循环仍然被编程为继续(就像这个那样),那么数字将变为正数,条件将满足,终止循环.

我的问题恰恰是:这是怎么发生的?为什么数字-2147483648在for循环中变为+2147483648,为什么+2147483648在for循环中变为-2147483648?因为我曾经认为一旦计数器达到2147483649就会发生分段错误.感谢您的回复!

c++ bits for-loop infinite-loop segmentation-fault

1
推荐指数
1
解决办法
125
查看次数

如何使用位操作在单个整数中编码和解码两个数字?

我正在学习有点操作然后我想到了这一点.假设我有两个数字,第一个在[1,6]的范围内,第二个在[0,3]的范围内.现在第一个数字可以存储最多3个比特,第二个数字可以存储2个比特.我如何使用一个int32将它们都存储在其中.谢谢.

c++ bits bitset

1
推荐指数
1
解决办法
489
查看次数

计算所需的位数

我需要帮助

我被问到对于1到10亿的无符号整数范围,需要多少位!

我们如何计算呢?

谢谢

UPDATE !!!!

这就是我想知道的,因为这个人说17

bits bit-manipulation

0
推荐指数
1
解决办法
903
查看次数