相关疑难解决方法(0)

我可以在C或C++中使用二进制文字吗?

我需要使用二进制数.

我试着写:

const x = 00010000;
Run Code Online (Sandbox Code Playgroud)

但它没有用.

我知道我可以使用具有相同值的十六进制数字00010000,但我想知道C++中是否存在二进制数的类型,如果没有,是否有另一种解决方案可以解决我的问题?

c c++ binary

182
推荐指数
13
解决办法
34万
查看次数

访问非活动的union成员和未定义的行为?

我的印象是访问union除最后一个成员之外的成员是UB,但我似乎无法找到一个可靠的参考(除了声称它是UB但没有标准支持的答案).

那么,这是不确定的行为?

c++ undefined-behavior unions language-lawyer

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

为什么unsigned char << unsigned char的结果不是unsigned char

我从左移获得结果,我无法找到解释.

unsigned char value = 0xff; // 1111 1111
unsigned char  = 0x01; // 0000 0001

std::cout << "SIZEOF value " << sizeof(value) << "\n"; // prints 1 as expected
std::cout << "SIZEOF shift " << sizeof(shift) << "\n"; // prints 1 as expected

std::cout << "result " << (value << shift) << "\n"; // prints 510 ???

std::cout << "SIZEOF result " <<  sizeof(value << shift) << "\n"; // prints 4 ???
Run Code Online (Sandbox Code Playgroud)

我期待结果,1111 1110但我得到int(?)的价值1 …

c++ bit-manipulation

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