Size: a a a

Конкурсы Telegram

2020 February 17

VL

Victor Lictor in Конкурсы Telegram
источник

ᴀ‎

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

Y💜

Yuri ♂️ 💜 Ly in Конкурсы Telegram
Mr. Wolf
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}

Спрашивал уже в чате JS разработчиков. Не получил внятного ответа. Спрошу тут.
Объясните смысл данной JS функции, она ведь не делает того, что заявлено в её названии, ведь в JS нет привычного понятия типа int как, например, в C++, а есть тип number максимальный диапазон которого выше типа int в разы. И целочисленного переполнения схожего с тем, что есть в C++ тоже нет.
источник

Ⓙⓔⓚⓐ in Конкурсы Telegram
Überdoge
О, разблокировали!
♥️
источник

Ü

Überdoge in Конкурсы Telegram
Если нет ответа, то лучше проигнорировать моё сообщение.
источник

Ü

Überdoge in Конкурсы Telegram
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}


Если кратко: кто видит здесь смысл? Я не вижу.
источник

Y💜

Yuri ♂️ 💜 Ly in Конкурсы Telegram
Überdoge
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}


Если кратко: кто видит здесь смысл? Я не вижу.
Смысл в том чтобы сделать число без знака минус
источник

h

holk in Конкурсы Telegram
Überdoge
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}


Если кратко: кто видит здесь смысл? Я не вижу.
Я вижу ты просто джсер, прими на веру
источник

h

holk in Конкурсы Telegram
Вот эти вот все знаковые разряды это не для тебя
источник

Ü

Überdoge in Конкурсы Telegram
Yuri ♂️ 💜 Ly
Смысл в том чтобы сделать число без знака минус
Верно. А теперь попробуйте выполнить это.

function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}
intToUint(-9007199254740991);
источник

h

holk in Конкурсы Telegram
Überdoge
Верно. А теперь попробуйте выполнить это.

function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}
intToUint(-9007199254740991);
Это явно не инт у тебя
источник

h

holk in Конкурсы Telegram
Хотя я хуй знает чё у вас там с типами
источник

GW

Guess Who in Конкурсы Telegram
Mr. Wolf
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}

Спрашивал уже в чате JS разработчиков. Не получил внятного ответа. Спрошу тут.
Объясните смысл данной JS функции, она ведь не делает того, что заявлено в её названии, ведь в JS нет привычного понятия типа int как, например, в C++, а есть тип number максимальный диапазон которого выше типа int в разы. И целочисленного переполнения схожего с тем, что есть в C++ тоже нет.
Вполне возможно, что другая программа взяла число типа uint, преобразовала его в строку как int (первый бит воспринимался как знак), и отправила в JS. JS преобразует это сломанное число обратно в диапазон uint.
источник

h

holk in Конкурсы Telegram
Но судя по 4294967296 границы другие
источник

GW

Guess Who in Конкурсы Telegram
holk
Но судя по 4294967296 границы другие
4294967296 = 2^32, что является диапазоном uint
источник

h

holk in Конкурсы Telegram
Guess Who
4294967296 = 2^32, что является диапазоном uint
Ну и?
источник

h

holk in Конкурсы Telegram
А какая разница у него явно чисто не int
источник

h

holk in Конкурсы Telegram
В его примере
источник

Ü

Überdoge in Конкурсы Telegram
Да, там number.
источник

Y💜

Yuri ♂️ 💜 Ly in Конкурсы Telegram
Überdoge
Верно. А теперь попробуйте выполнить это.

function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}
intToUint(-9007199254740991);
Language:
js


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


Result:
-9007194959773695
источник