Pull to refresh
9
0
Олег Стрельников @oleg1977

User

Send message
у меня имя фамилия
Переводить с qiwi на карту ТКС нужно, чтобы конертировать qiwi в ЯД без комиссий
Я оформлял эту карту только в надежде, что на нее можно будет с qiwi как на обычную ТКС переводить бесплатно, а оказалось — нельзя. Второе, что было нужно — ИБ от ТКС — тоже не работает, так что карта оказалась бесполезной :(
тут, наверное, сразу много проблем:
1) 15 декабря — 15 января — это тоже месяц (не календарный, а продолжительность времени)
2) декабрь в Лос-Анжелесе заканчивается в следующем году по UTC
3) наверняка, еще что-то есть
на реальных. я встречал это в базе вкладчиков пенсионного фонда. когда стал думать, что делать — нашел статью, в которой утверждалось, что для даты рождения нужно использовать два поля: строкого типа из паспорта и типа дата — реальная
Я не понял 1 момент: на клиента выделяется фактически пул 2^64 адресов?
Я — клиент. По вашему описанию могу сказать, что и не думал, что у нас есть настолько клиенто-ориентированные не на словах, а на деле ДЦ. Спасибо за ваш труд!
Снял у меня из под пальцев замечание про п. 14
По-моему отличная идея. Фактически используется шифр Шеннона, то есть взломать нельзя никак кроме брутфорс. Помешать широкому распространению может только более удобная смена пин-кода
Сделал соответствующее исправление в тексте, чтобы не возникало дальнейших вопросов с GCD. Стоит также заметить, что в исходной задаче константы были взаимно просты, и лишь при подготовке начального варианта поста я произвел округление, которое по моему недогляду привело к еще одному решению через GCD.
Я для упрощения округлил до 1999000000ULL, полагая, что значение роли не играет. Считайте gcd = 1, такое будет, например, для TICKS_PER_SECOND = 1999000001ULL;
Еще точнее: «C++ не умеет умножать целые короче int, а для целых не короче int разрядность результата совпадает с разрядностью умножения». Для long тоже можно изобрести что-то вроде:
long a, b;
//...
long long c = a*static_cast<long long>(b);

Но это уже выходит за рамки условий поста. Там задача — остаться в рамках исходной разрядности.
>>ntohl и ntohs позволяют получить данные в сетевом порядке байт независимо от платформы, но получить данные в порядке байт обратном сетевому независимо от платформы с их помощью не получится
Перевод из сетевого в хостовый и из хостового в сетевой — одна и та же операция. Поэтому раз получается одна, получается и другая
Вот функция, переводящая из сетевого в хостовый порядк (и обратно, поскольку это одно и тоже) не зависящая от платформы (на примере short, аналогично для остальных типов):

short net_to_host(short s) {
    char const* bytes = &s;
    return (static_cast<short const>(bytes[0]) << 8) | bytes[1];
}


<< 8 — то же самое, что *256, | — то же самое, что + (в данном случае)
Есть у меня эта книга, только не всю прочитал. Там есть конкретно такой пример? Я не претендую на право первооткрывателя, но приведенный код придуман самостоятельно, хотя он и не сложный, а предварительное гугление результатов не дало
Вы правы, смотрите мой ответ на предыдущий комментарий
Согласен. Нужно было написать что-то вроде:
«результат умножения целых типа не короче int имеет ту же разрядность, что и множители»
Нет, моедльный пример — в реально работающем проекте. Вот только операционка там — ядро линукс, а все драйвера — свои. Из сторонних библиотек только libc
И чему оно будет равно? Обратите внимание, что в соответствии с условием вещественные типы использовать нельзя
12 ...
8

Information

Rating
Does not participate
Location
Волгоград, Волгоградская обл., Россия
Date of birth
Registered
Activity