У меня есть определённый набор байт ( byte[] массив ). Мне надо из этого байтового массива прочитать по 11 бит и перевести эти биты просто в десятичное число. Мои первые мысли были такими: Допустим, я беру 2 байта, считываю 11 бит, и у меня остаются лишние 5 бит. Я беру еще 8 бит, и выходит 8 + 5 = 13 бит, и считываю опять 11 бит, потом снова беру 8 бит, и у меня уже выходит 10 бит, и я вынужден брать еще 8 бит. У меня есть определённое ощущение, что я либо создал неправильный алгоритм, либо я вообще что-то делаю не так.
Может кто-то сказать, что я делаю не так? Или как сделать лучше?
Спасибо, что подсказал. Отметил твоё сообщение, как решение. Единственное уточнение: не мог бы ты скинуть примеры проектов, где такое делают? Я рыскал в интернете, но ничего не нашел.
Полиш Флэймзровер, я пользовал. остался очень доволен. а конкретно - решето Эратосфена на максимальный размер ))
в том числе объекты замечательно сериализуются (сохранение в файл) ))
сразу скажу - не сравнивал производительность с другими подходами.
зато точно могу сказать - то что вы описали как свою первую идею, возможно. но и граблей огребать можно долго, если рука не набита ))
как вариант - использовать массивы Int16 (они же short) но просто маскировать значение по 11 бит. будете терять по 5 бит на знакоместо, зато алгоритмистика будет проще и легче будет тестировать. если знаков в числах у вас будет не много, такие потери памяти врядли имеют значение