Size: a a a

2020 February 17

L

Lupusregina[beta] in pro.js
Mr. Wolf
Никто не знает?
что? я же те ответил
источник

I

Igor in pro.js
ну давай погадаем
val, очевидно, — строка
вероятно, она откуда-то прочитана или принята
ещё вероятно, что её туда записал сишный код, который рассматривает это как знаковое 32-битное  число
тогда приведённый выше код преобразует строку в беззнаковое число
источник

M

Mr. Wolf in pro.js
Lupusregina[beta]
что? я же те ответил
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}
intToUint(-9007199254740991);


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

M

Mr. Wolf in pro.js
Igor
ну давай погадаем
val, очевидно, — строка
вероятно, она откуда-то прочитана или принята
ещё вероятно, что её туда записал сишный код, который рассматривает это как знаковое 32-битное  число
тогда приведённый выше код преобразует строку в беззнаковое число
Сишный код записал в JS строку знаковое 32 битное число?
источник

I

Igor in pro.js
Mr. Wolf
Сишный код записал в JS строку знаковое 32 битное число?
да хоть в файл, без разницы
источник

L

Lupusregina[beta] in pro.js
Mr. Wolf
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}
intToUint(-9007199254740991);


Ну выполни это в консоли браузера, посмотри.
function intToUint (val) {
 val = ~~val
 if (val < 0)
   val = val + 4294967296
 return val
}
intToUint(-9007199254740991);
источник

0

0xFF in pro.js
Если меньше нуля, то не проще на -1 умножить?
источник

0

0xFF in pro.js
Мы же знаковое на беззнаковое переводим?
источник

L

Lupusregina[beta] in pro.js
0xFF
Если меньше нуля, то не проще на -1 умножить?
это ни так работает
источник

L

Lupusregina[beta] in pro.js
Lupusregina[beta]
тебе надо

int32_t i;
(uint32_t *)(&i)
.
источник

I

Igor in pro.js
0xFF
Мы же знаковое на беззнаковое переводим?
источник

M

Mr. Wolf in pro.js
Mr. Wolf
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}

function uintToInt (val) {
 if (val > 2147483647) {
   val = val - 4294967296
 }
 return val
}

Всем привет.
Объясните суть этих функций в JS. Если в JS отсутствует поведение целочисленного переполнения как, например, в C++, и при переполнении будет Infinity, -Infinity, то смысл этой функции? Тем более переполнение невозможно, потому что диапазон типа "number" гораздо выше представленного в функции числа.
Прочтите внимательнее ещё раз, если кто-то знает, то, пожалуйста, напишите смысл этих функций.
источник

L

Lupusregina[beta] in pro.js
Mr. Wolf
Прочтите внимательнее ещё раз, если кто-то знает, то, пожалуйста, напишите смысл этих функций.
ты троль что ли
источник

M

Mr. Wolf in pro.js
Lupusregina[beta]
ты троль что ли
Я не просил писать новую функцию, я спросил описать смысл представленных функций в JS.
источник

I

Igor in pro.js
и чем не устраивают описания?
источник

M

Mr. Wolf in pro.js
Igor
и чем не устраивают описания?
Не дают ответа на поставленный вопрос.
источник

🇧

🇧 🇺 🇨 🇨 🇪 🇱 🇱 🇦 🇹 🇮 in pro.js
какой вопрос?
источник

I

Igor in pro.js
> Объясните суть этих функций в JS.
check
источник

M

Mr. Wolf in pro.js
Mr. Wolf
function intToUint (val) {
 val = parseInt(val)
 if (val < 0) {
   val = val + 4294967296
 }
 return val
}

function uintToInt (val) {
 if (val > 2147483647) {
   val = val - 4294967296
 }
 return val
}

Всем привет.
Объясните суть этих функций в JS. Если в JS отсутствует поведение целочисленного переполнения как, например, в C++, и при переполнении будет Infinity, -Infinity, то смысл этой функции? Тем более переполнение невозможно, потому что диапазон типа "number" гораздо выше представленного в функции числа.
В чём смысл в этих двух функциях? Лично я в них смысла не вижу.
источник

M

Mr. Wolf in pro.js
Они не делают то, что указано в их названиях.
источник