Циклический сдвиг 
		
		
		
		Ребятки помогите!!! у меня есть сообщение " мама мыла раму " мне его надо закодировать, надо каждые 4байта сдвинуть циклически влево на 2 бита, как это делается ума не приложу, а на чем то другом писать не умею 
	 | 
	
		
 Получаете код каждого символа, он будет в шестнадцатеричном формате; переводите его в числовое преставление, применяете сдвиг, затем опять в шестнадцатеричное представление с формированием строки. 
	 | 
	
		
 dmitriy37, что значит "каждые 4байта сдвинуть циклически влево на 2 бита"?  
	Цитата: 
	
  | 
	
		
 charCodeAt(i) - возвращает десятичный код символа. Я думал будет шестнадцатеричное значение, по примеру с вставкой символов в строку. 
	С числовым значением можно работать как угодно.  | 
	
		
 если применить оператор сдвига << надо что бы биты циклично сдвинулись, а не что бы их места нули занимали, если можно небольшой пример 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 
function encode ( source ) {
  for ( var result = '', int32, i = 0; i < source.length; ) {
    int32 = source.charCodeAt(i++) << 16 | source.charCodeAt(i++);
    int32 = int32 << 2 | int32 >>> 30;
    result += String.fromCharCode( int32 >>> 16, int32 & 65535 );
  }
  return result;
}
function decode ( result ) {
  for ( var source = '', int32, i = 0; i < result.length; ) {
    int32 = result.charCodeAt(i++) << 16 | result.charCodeAt(i++);
    int32 = int32 >>> 2 | int32 << 30;
    source += String.fromCharCode( int32 >>> 16, int32 & 65535 );
  }
  return source.charCodeAt(i-1) == 0 ? source.slice(0, -1) : source;
}
console.log( encode( 'мама мыла раму' ));
console.log( decode( encode( 'мама мыла раму' )));
dmitriy37, Всё довольно просто, не так ли? ))  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 Попутно, если не в курсе, в JS используется юникод, и на каждый символ отводится 16 бит (в т.ч. части суррогатных пар).  | 
	
		
 Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 08:51. |