我目前正在編寫一個代碼,我需要一次修改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位。
該死的。當然!這次真是萬分感謝。我不知道我是如何錯過它的。 –