Size: a a a

Конкурсы Telegram

2020 February 17

GW

Guess Who in Конкурсы Telegram
Yuri ♂️ 💜 Ly
Language:
js


Source:
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}
console.log(intToUint(-9007199254740991));


Result:
-9007194959773695
Это число сюда принёс не автор вопроса
источник

EK

Eduard Kuzmenko in Конкурсы Telegram
Дима Батарейка
?
источник

h

holk in Конкурсы Telegram
Guess Who
Это число сюда принёс не автор вопроса
А, бля я думал это автор
источник

Y💜

Yuri ♂️ 💜 Ly in Конкурсы Telegram
Guess Who
Это число сюда принёс не автор вопроса
По той ссылке где я кинул написано
> JavaScript Numbers are Always 64-bit Floating Point
источник

h

holk in Конкурсы Telegram
Да все на одно лицо
источник

Ü

Überdoge in Конкурсы Telegram
Guess Who
Вполне возможно, что другая программа взяла число типа uint, преобразовала его в строку как int (первый бит воспринимался как знак), и отправила в JS. JS преобразует это сломанное число обратно в диапазон uint.
Пока что Ваша версия кажется мне наиболее приемлемой.
источник

ᴀ‎

ᴀʀᴛʜᴜʀ ᴡᴀʏɴᴇ ‎ in Конкурсы Telegram
Yuri ♂️ 💜 Ly
Language:
js


Source:
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}
console.log(intToUint(-9007199254740991));


Result:
-9007194959773695
Language:
js


Source:
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}
console.log("all, good, you're now 100% certified developer");


Result:
all, good, you're now 100% certified developer
источник

ᴀ‎

ᴀʀᴛʜᴜʀ ᴡᴀʏɴᴇ ‎ in Конкурсы Telegram
ez
источник

h

holk in Конкурсы Telegram
Ору
источник

GW

Guess Who in Конкурсы Telegram
Guess Who
Вполне возможно, что другая программа взяла число типа uint, преобразовала его в строку как int (первый бит воспринимался как знак), и отправила в JS. JS преобразует это сломанное число обратно в диапазон uint.
Иначе говоря, кто-то на C++ сделал:
uint number = ...;
printf('%d', number); // Неверный плэйсхолдер

А та функция на JS исправляет это.
источник

Ü

Überdoge in Конкурсы Telegram
источник

ᴀ‎

ᴀʀᴛʜᴜʀ ᴡᴀʏɴᴇ ‎ in Конкурсы Telegram
holk
Ору
kek
Но Юрка хороший, его не обижать
источник

h

holk in Конкурсы Telegram
ᴀʀᴛʜᴜʀ ᴡᴀʏɴᴇ ‎
kek
Но Юрка хороший, его не обижать
Да лох он
источник

ᴀ‎

ᴀʀᴛʜᴜʀ ᴡᴀʏɴᴇ ‎ in Конкурсы Telegram
holk
Да лох он
источник

Ü

Überdoge in Конкурсы Telegram
Функция взята отсюда, но я не заметил, чтобы Webogram взаимодействовал как-то с С++.
источник

Ü

Überdoge in Конкурсы Telegram
Überdoge
Функция взята отсюда, но я не заметил, чтобы Webogram взаимодействовал как-то с С++.
Вот, допустим, строка.
источник

GW

Guess Who in Конкурсы Telegram
Überdoge
Функция взята отсюда, но я не заметил, чтобы Webogram взаимодействовал как-то с С++.
Не обязательно C++. Смысл моей версии в том, что кто-то спарсил 4 байта как signed int, а та функция преобразует число так, будто бы те байты были спарсены как uint.
источник

ᴀ‎

ᴀʀᴛʜᴜʀ ᴡᴀʏɴᴇ ‎ in Конкурсы Telegram
./js/lib/bin_utils.js:50:    bytes.push(parseInt(hexString.charAt(0), 16))

./js/lib/bin_utils.js:55:    bytes.push(parseInt(hexString.substr(i, 2), 16))

./vendor/closure/long.js:173:    var value = parseInt(str.substring(i, i + size), radix);

./vendor/cryptoJS/crypto.js:353:                words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
источник

GW

Guess Who in Конкурсы Telegram
Überdoge
Функция взята отсюда, но я не заметил, чтобы Webogram взаимодействовал как-то с С++.
Конкретно там функция используется для обратной цели: преобразовать число со знаком в число без знака, чтобы затем записать в байты (наверное, потому что отрицательные числа не принимаются) и отправить по каналу. На там конце, видать, сервер спарсит эти байты как int.
источник

Ü

Überdoge in Конкурсы Telegram
Guess Who
Конкретно там функция используется для обратной цели: преобразовать число со знаком в число без знака, чтобы затем записать в байты (наверное, потому что отрицательные числа не принимаются) и отправить по каналу. На там конце, видать, сервер спарсит эти байты как int.
Хм, а это идея.
источник