我目前正在编写一个代码,我需要一次修改8字节变量1位。我在想,如果有写这样长而简单的十六进制值更方便的方法:有没有一种方便的方式在c中编写简单但长的十六进制值?
可变& 0x8000000000000000
我知道我可以声明一个字符为0x80的,然后将其转换为不同的类型并转移它。我只是在寻找更简单,更实用的东西。
我目前正在编写一个代码,我需要一次修改8字节变量1位。我在想,如果有写这样长而简单的十六进制值更方便的方法:有没有一种方便的方式在c中编写简单但长的十六进制值?
可变& 0x8000000000000000
我知道我可以声明一个字符为0x80的,然后将其转换为不同的类型并转移它。我只是在寻找更简单,更实用的东西。
您可以使用逐位左移运算,使之更加明确:
variable & 1ULL << 63
好,虽然这是一个转变,但你可以将使用Arduino的BV()
宏,这是短期和方便:
#define _BV(bit) (1ULL << (bit))
其使用的方式:
var & (0x8 * _BV(60));
,如果你想在工作字节最远离或直接:
var & _BV(63);
访问第63位。
该死的。当然!这次真是万分感谢。我不知道我是如何错过它的。 –