C++十六进制表示法和按位运算符性能

Jer*_*ert 3 c++ optimization bitwise-operators

可能是一个愚蠢的问题,但我有一个C++应用程序,我经常这样做:

x & 0xff
Run Code Online (Sandbox Code Playgroud)

其中x是32位整数.将前导零也放入是否有任何性能优势,所以它是两个32位数之间的AND运算?

x & 0x000000ff
Run Code Online (Sandbox Code Playgroud)

我读到在评估操作之前,任何小于int的操作数都将被提升为int.我想这是一个优化编译器自动完成的,或者我是否通过将那些前导零置于那里来帮助MSVC?

mel*_*ene 6

将这些零添加到源代码中绝对没有区别.在编译器完成解析代码之前,它们已在lexing阶段被删除.它们不会影响代码生成.