tf diff /shelveset:shelveset /format:unified
Редактирование: Это пишет в стандартный вывод. Можно передать вывод по каналу в файл.
Для большего количества опций, см. Команда .
Различия
Храните 64-битный номер как отдельные разделы с высоким и низким уровнем. Чтобы повернуть влево на N при N <32:
hi_rot = ((hi << N) | (lo >>> (32-N))) & (0xFFFFFFFF)
lo_rot = ((lo << N) | (hi >>> (32-N))) & (0xFFFFFFFF)
Если N> = 32, вычтите 32 из N, поменяйте местами hi и lo, а затем выполните указанные выше действия.
Я думаю, что единственный способ сделать это - создать класс int64, который внутри содержит два 32-битных целых числа и выполняет сдвиг путем переноса между ними.
Вот вращение на основе значений.
double d = 12345678901.0;
// get high int bits in hi, and the low in
int hi = (int)(d / 16.0 / 16.0 / 16.0 / 16.0);
int low = (int)d;
int rot = 3; // thus * 8
int newhi = (low >> (32 - rot)) | (hi << rot);
int newlow = (hi >> (32 - rot)) | (low << rot);
double newdouble = ((double)hi * 16.0 * 16.0 * 16.0 * 16.0) + (double)low;
Я считаю, что это, хотя и не самый эффективный способ, преобразовать число в строку в двоичной форме (64-битной), использовать подстроку для перемещения символа в начале и добавления его к end (для вращения влево) и преобразовать двоичную форму обратно в число. Я уверен, что вы сможете понять, как преобразовать десятичное число в его двоичную форму в строку и обратно.