[英]How can i use 6 byte integer data type in C?
我想在 c 中使用 6 字節數據類型,但我找不到該怎么做。 你能教我如何在 c 中使用 6 字節 integer 數據類型嗎?
我使用 dev c++ 和代碼塊。
我想使用 c,但我也可以使用 c++。 Windows 64 位
閱讀 C11 標准n1570和 C++11 標准n3337 。
另請參閱此 C 和 C++ 參考網站。
另請閱讀良好的 C 編程書籍(現代 C )和良好的C++ 編程書籍(以及編譯器的文檔)。
(理論上奇怪的 C 或 C++ 實現除外;我無法在 2020 年命名任何現有的實現)
您可以使用struct
中的位字段或(而不是) 64 位數字std::int64_t
)結合按位運算(例如按位和&
或按位或|
或按位不~
或位移操作<<
或>>
)
您可能會生成序列化例程,例如使用SWIG 。 注意字節順序問題。 為了便於調試,您可能更喜歡JSON等文本格式,而不是發送二進制數據包。
有一種方法可以在 C 中獲得確切的位數,所以理論上它是可行的,但在 memory 中需要超過 48 位。
為此,您可以使用 C 中的位字段,您可以:
struct your_type {
uint64_t your_value : 48;
};
有了這個,您可以創建這樣的結構,並訪問將具有 48 位表示的 your_value。 它將被視為 uint64_t 在引擎蓋下。
說我強烈建議閱讀Ansi C
或任何其他基本的 C 書籍,以更好地了解基礎知識。
請注意,由於填充、打包和字節序問題,使用位域創建解析器通常是個壞主意。 如果您需要任何協議,請關注 messagepack 或任何其他協議庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.