int64 (long long) 値とバイト値があります。私はそれらを一緒にマージしたい。私の長い長い値が64ビットを使用していないことを知っています。だから、未設定の8ビット(最上位または最下位?)を使用して、バイトをエンコードしたいと考えています。
後で、それらを分離して元の値とバイトを見つけたいと思います。
できれば関数またはある種のマクロ
typedef unsigned char byte;
typedef long long int64;
int64 make_global_rowid(int64 rowid, byte hp_id);
byte get_hp_id(int64 global_row_id);
int64 get_row_id(int64 global_row_id);
get_hp_id はマージされた値からバイトを分離して返しますが、get_row_id はバイトとマージされた元の int64 を返します。