int func(unsigned long chto,unsigned long kuda,int skolko)
{
kuda<<skolko;//сдвиг влево на число бит
kuda|=сhto&~(0xffffffff<<skolko);//обрезаем chto по маске (для стабильности) и дриделываем к kuda
return kuda;
}
Реализация алгоритма Хофмана
1.без создания дерева возможно это реализовать.
2.каким образом можно забивать переменную типа инт, до отказа и переходить к следующей.Возможно ли так?
for(;пока не кончится текст;){
взятие буквы из текста;
определение ее кода;//code[j]-это архив в котором храняться коды
// каждого символа в формате
// 0 - наибольшая чвстота ( пусть буква "м"
// 10 - менее встречающаяся буква ( - "и")
// 110 - редкая ( "р")
// тогда "мир" будет выглядеть как 010110
//это 6 бит. Как их запихнуть в переменную...?
for(int i=0;i<32;i++){
ar<<2;
}
}
Зараннее спасибо всем.
Работающий пример функции присоединения:
Код:
Но она не проверяет на заполненость переменной.
Понять заполнена ли переменная невозможно (например незаполненая переменная 00001100 - это "ммммрм"), так что нужно выделить переменную для числа заполненых бит.
И вообще используй long (а лучше unsigned long).
Слежение за переполнением реализовано через отдельную переменную.