小编ryw*_*ite的帖子

使用仅按位运算符创建一个标记最重要设置位的掩码

这是昨晚应该给我的一个更大的编程任务的一部分.无法弄清楚这个问题,但我很好奇它是如何解决的.

该函数int greatestBitPos(int x)应返回一个标记最高位的位置的int掩码.如果x == 0,则返回0.不允许控制结构(if,while,?:).

例: greatestBitPos(96) = 0x40

合法经营者:!〜&^ | + << >> =

这个关于位杂乱的网站是我用作起点的东西,特别是第二种算法.但是,它使用<比较,这个问题不允许.

欢迎所有的想法,谢谢!

编辑:请假设2的补码,32位整数.对于所有负数,它们的最高位设置,因此返回值应为0x80000000.

c bit-manipulation

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

为什么我的if语句表现如此?

我今天遇到了这个难题.显然,这不是正确的风格,但我仍然很好奇为什么没有输出.

int x = 9;
int y = 8;
int z = 7;

if (x > 9) if (y > 8) System.out.println("x > 9 and y > 8");

else if (z >= 7) System.out.println("SHOULD OUTPUT THIS x <= 9 and z >= 7");

else
  System.out.println("x <= 9 and z < 7");
Run Code Online (Sandbox Code Playgroud)

上面运行时没有输出.但是,当我们为if语句添加括号时,突然逻辑行为与我期望的一样.

int x = 9;
int y = 8;
int z = 7;

if (x > 9) {
  if (y > 8) System.out.println("x > 9 and y > 8"); …
Run Code Online (Sandbox Code Playgroud)

java

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

组装拼图 - 二元炸弹

我有以下汇编代码:

0x08048d36 <+0>:     push   %ebp
0x08048d37 <+1>:     mov    %esp,%ebp
0x08048d39 <+3>:     push   %esi
0x08048d3a <+4>:     push   %ebx
0x08048d3b <+5>:     sub    $0x20,%esp
0x08048d3e <+8>:     lea    -0x10(%ebp),%eax
0x08048d41 <+11>:    mov    %eax,0xc(%esp)
0x08048d45 <+15>:    lea    -0xc(%ebp),%eax
0x08048d48 <+18>:    mov    %eax,0x8(%esp)
0x08048d4c <+22>:    movl   $0x804a28a,0x4(%esp)
0x08048d54 <+30>:    mov    0x8(%ebp),%eax
0x08048d57 <+33>:    mov    %eax,(%esp)
0x08048d5a <+36>:    call   0x8048758 <__isoc99_sscanf@plt>
0x08048d5f <+41>:    cmp    $0x1,%eax
0x08048d62 <+44>:    jg     0x8048d69 <phase_5+51>
0x08048d64 <+46>:    call   0x80491a8 <explode_bomb>
0x08048d69 <+51>:    mov    -0xc(%ebp),%eax
0x08048d6c <+54>:    and    $0xf,%eax
0x08048d6f <+57>:    mov    %eax,-0xc(%ebp) …
Run Code Online (Sandbox Code Playgroud)

assembly gdb

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

编译器错误:'使用'''之前'预期的不合格ID

这是我的代码:

    //test file
    #include <iostream>
    #include "stat.h"
    #include "frequency.h"

    using namespace std;

    int main(){
      cout << "helo"<< endl;
      return 0;
    }
Run Code Online (Sandbox Code Playgroud)

当我尝试编译时,我得到:

    test.cc:7: error: expected unqualified-id before "using"
    test.cc:7: error: expected `,' or `;' before "using"
Run Code Online (Sandbox Code Playgroud)

知道这里发生了什么吗?

c++ compiler-errors

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

如何从列表中按 10 个为一组获取元素?(或 5 个、或 3 个等)

从列表中分组获取元素的 Pythonic 方法是什么?即,我想要列表的前 10 个元素,然后是接下来的 10 个元素,然后是接下来的 10 个元素,依此类推。

python python-2.7

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

标签 统计

assembly ×1

bit-manipulation ×1

c ×1

c++ ×1

compiler-errors ×1

gdb ×1

java ×1

python ×1

python-2.7 ×1