有没有一种方便的方法在c中编写简单但长的十六进制值?

时间:2014-02-18 15:14:43

标签: c hex

我正在编写一个代码,我需要一次修改一个8字节变量。我想知道,如果有一种更方便的方法来编写一个长而简单的十六进制值,如:

  

变量& 0x8000000000000000

我知道我可以将char声明为0x80,然后将其转换为其他类型并将其移位。我只是在寻找更简单,更实用的东西。

2 个答案:

答案 0 :(得分:3)

您可以使用按位左移运算符使其更清晰:

variable & 1ULL << 63

答案 1 :(得分:1)

好吧,虽然这是一个转变,但你可以使用arduino的BV()宏,这很简单方便:

#define _BV(bit) (1ULL << (bit))

以这种方式使用:

var & (0x8 * _BV(60));

如果你想在最左边或最直接的字节上工作:

var & _BV(63);

访问第63位。