Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.03.2013, 19:33
Новичок на форуме
Отправить личное сообщение для otRock Посмотреть профиль Найти все сообщения от otRock
 
Регистрация: 14.03.2013
Сообщений: 2

Побитовый левый сдвиг
Здравствуйте все.
Столкнулся с проблемой "типов данных" в JS

Сразу приведу примеры чтоб было понятно, что именно не получается

Код на С, дающий необходимый(верный) результат:
unsigned char byte = 70;
byte <<= 4; // теперь byte == 96


аналогичный код на JS:
var byte = 70;
byte <<= 4; // теперь byte == 1120


Вся проблема в том, что byte в С это 8 бит, а в JS byte занимает 32 бита. Как получить необходимый результат(96) средствами яваскрипта?
PS Использую NodeJS
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2013, 20:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

otRock,
а можно ради интереса ещё несколько пар типа 70 - 96?
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2013, 21:05
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

рони,
01000110 (70)
        << 4
01100000 (96)
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2013, 21:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

danik.js,
мне надо 50 --- ??
8 ---??? и тд сколько это будет на C
Ответить с цитированием
  #5 (permalink)  
Старый 14.03.2013, 21:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108


вариант )))
function c8(d)
{
   return parseInt(/\d{8}$/.exec((""+d.toString(2)))[0], 2)
}
alert(c8(1120));
Ответить с цитированием
  #6 (permalink)  
Старый 14.03.2013, 21:20
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

аналогичный код на JS:
var byte = 70;
alert(byte << 4 & 255); // теперь byte == 96
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #7 (permalink)  
Старый 14.03.2013, 21:20
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

рони,
легких путей не ищем
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 14.03.2013, 22:05
Новичок на форуме
Отправить личное сообщение для otRock Посмотреть профиль Найти все сообщения от otRock
 
Регистрация: 14.03.2013
Сообщений: 2

devote,
Спасибо! То, что надо!)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сдвиг при наведение мышки BelkinV Общие вопросы Javascript 8 28.11.2012 12:20
Сдвиг background'a n1ko jQuery 6 26.11.2011 13:23
javascript - сдвиг текста в лево и право nmmnmmn Opera, Safari и др. 1 23.04.2010 00:50
Сдвиг при изменении border mycoding (X)HTML/CSS 11 22.04.2010 09:38
JQuery и сдвиг DIVа slim jQuery 5 26.07.2009 17:21