是否有任何理由不在C++中对"bool"值使用按位运算符&,|和^?
我有时会遇到两个条件中只有一个是真的(XOR)的情况,所以我只是将^运算符抛出到条件表达式中.我有时也希望评估条件的所有部分是否结果是真的(而不是短路),所以我使用&和|.我有时也需要累积布尔值,而且&=和| =非常有用.
这样做时我已经有了一些眉毛,但代码仍然比其他方面更有意义和更清洁.是否有任何理由不将这些用于布尔?是否有任何现代编译器会给出不好的结果?
我想打印以下散列数据.我该怎么办?
unsigned char hashedChars[32];
SHA256((const unsigned char*)data.c_str(),
data.length(),
hashedChars);
printf("hashedChars: %X\n", hashedChars); // doesn't seem to work??
Run Code Online (Sandbox Code Playgroud) 如果你有一些变量(在堆栈上),你左或右位移超过它的结束会发生什么?
即
byte x = 1;
x >> N;
Run Code Online (Sandbox Code Playgroud)
如果x是一个指向内存转换为字节的指针而你做同样的事情怎么办?
byte* x = obtain pointer from somewhere;
*x = 1;
*x >> N;
Run Code Online (Sandbox Code Playgroud)