Чтение байтовой строки Python UUID в C ++? - PullRequest
0 голосов
/ 23 августа 2011

У меня есть строка из 16 байтов в python, созданная с помощью метода uuid.bytes, например: 'I \ x9e | T \ r \ xad @ \ x80 \ x986m \ x00 \ x1c \ x07z0', например,я перехожу к файлу C ++.

Есть ли способ прочитать это со стороны C ++ и восстановить UUID?Я собирался прочитать его в массив из 16 символов, начиная с байта char = 1, но не уверен, куда идти дальше.

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Как то так (не проверено)

char to_hex(int x)
{
  return x < 10 ? x + '0' : (x - 10) + 'A';
}

char bytes[16];
...
std::string uuid;
for (int i = 0; i < 16; ++i)
{
  uuid += to_hex((bytes[i] >> 4) & 0x0F);
  uuid += to_hex(bytes[i] & 0x0F);
}
0 голосов
/ 23 августа 2011

Я бы использовал:

UUID.hex

, если вам это не нужно в двоичном представлении.Нет смысла конвертировать туда и обратно.

...