и полностью теряем выиграш от применения троичных ячеек памяти
ну спасибо
- - - Добавлено - - -
про без избыточности я написал русским языком
- - - Добавлено - - -
объясню в картинках
некоторая проблема с троичной системой
как должно бытьКод:000 - 00 001 - 01 010 - 02 011 - 10 100 - 11 101 - 12 110 - 20 111 - 21 22 - не используемая комбинация (избыточность) = неиспользуемая память = меньший объем накопителя
на примере четверичной системы
Код:00 - 0 01 - 1 10 - 2 11 - 3
Последний раз редактировалось NEO SPECTRUMAN; 17.05.2020 в 17:08.
хотя именно в троичную систему
целое число битов видимо никогда не впишется
тк число комбинаций никогда не бывает даже четным
не то что кратным степени двойки
Код:1 3 2 9 3 27 4 81 5 243 6 729 7 2187 8 6561 9 19683 10 59049 11 177147 12 531441 13 1594323 14 4782969
то есть двоичный результат будет только с последовательным доступом
для четверичной системы
это же блоки по 2 бита
чота микроконтроллеры на флешках с mlc и tlc про это не знают
хотя как видим
они не осилили систему не кратную степени двойки
и вместо троичной сразу заюзали четверичную систему
хотя например можно было бы писать весь блок\сектор в троичном виде
все равно по байтно не читается
а терять только на последнем числе
- - - Добавлено - - -
конечно если предполагается разделение на блоки
для произвольного доступа
можно считать данные числом
например 2^256 (32 байт) (32 пушо калькуляторы не переваривают большие степени типа 32768 а те что переваривают не имеют логарифма по основанию 3)
и переводить в троичное число 3^162 (20,25 трайт)
и то есть последний 21 трайт будет использоваться только на 25%
- - - Добавлено - - -
но все таки хотелось бы алгоритм
который бы переводил произвольное число двоичных данных в троичные \ n-ричные
Последний раз редактировалось NEO SPECTRUMAN; 17.05.2020 в 18:46.
Любая цифра и любая комбинация цифр из заданной системы счисления являются числами. Любое число можно выразить в любой другой системе счисления. Избыточность выбранной разрядной сетки зависит только от количества чисел, которые нам нужно в ней представлять для данной задачи.
Что не отменяет удобства определённых систем счисления для определённых задач и определённых физических носителей информации.
отлично нам нужно представить двоичное число
весом 300MB в троичной системе
чтоб записать его на носитель с троичными ячейками
как это сделать?
я даже не могу рассчитать сколько на это нужно трайтов
тк калькуляторы не осиливают
а сократить расчет я не могу (просто я плохо уметь сокращать)
Последний раз редактировалось NEO SPECTRUMAN; 17.05.2020 в 18:55.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
А текст давайте кодировать в RADIX-50!
Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.
Seamos realistas y hagamos lo imposible!
Ernesto Che GuevaraПереехал сюда: SteinBlume (ex ATM CP/M Explorer)
http://era-cg.su
Вы в школе логарифмы ещё не проходили что-ли?
- - - Добавлено - - -
300MB число это 300*1024*1024*8=2516582400 бит, т.е. максимальное число 2^2516582400
3^x=2^2516582400
x=log3(2^2516582400)
x=2516582400*log3(2)
x=2516582400*ln(2)/ln(3)
x=1587786713,4742669285537769842778, т.е. 1.587.786.714 троичных цифр.
NEO SPECTRUMAN(17.05.2020)
ё-моё, при чём тут вообще железо?
система счисления нужда для представления чисел в человекоудобном виде
двоичная система для человека неудобна, потому что запись слишком длинная получается
но и наращивание кол-ва цифр тоже начинает с определённого момента скорей мешать
потому что крайне неудобно будет считать в уме, особенно в обратном порядке
уже 16-ричная система вызывает затруднения, когда нужно сдвинуть адрес немного
а уж с этой хренью и подавно вытекут мозги через уши
Прихожу без разрешения, сею смерть и разрушение...
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)