Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Недесятичные системы счисления

Автор Dana, июня 8, 2011, 21:00

0 Пользователи и 1 гость просматривают эту тему.

Toivo

Цитата: Bhudh от июня  8, 2011, 22:01
Помню, Чип учил на двух руках до 1024 считать. ::)
Двоичная система счисления - это убого. Шестидесятеричная красивее же.

Bhudh

Не каждый влёт скажет, сколько в часе секунд.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

hurufu


Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Toivo

Цитата: Bhudh от июня  8, 2011, 22:09
Не каждый влёт скажет, сколько в часе секунд.
Эм-м-м... А что сложного в этом вопросе?

hurufu


Bhudh

Цитата: Toivo от А что сложного в этом вопросе?
Ну спроси[b]́[/b]те кого-нибудь...
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

hurufu

Цитата: do50 от июня  8, 2011, 22:05
Цитата: hurufu от июня  8, 2011, 22:01
Цитата: do50 от июня  8, 2011, 21:59
а кто-нибудь формулку накидает для перевода из десятеричной в двенадцатеричную
http://flud.org/dozenal-calc.html
спасибо, а вот формулу
Я вижу две возможности:

  • Либо выводим из определения, что лень.
  • Либо смотрим исходный код той страницы.

Bhudh

<script language="javascript" type="text/javascript">
  <!--
  var regex_DecimalNum=/^-?[1-9]*[0-9]*(\.)?[0-9]*$/;
  var regex_DozenalNum=/^-?[0-9\*#]*;?[0-9\*#]*$/;

  var saved_decimal="";
  var saved_dozenal="";

function int_to_doz(intv) {
  var res="";
  var R, Q=Math.floor(Math.abs(intv));
  while (true) {
    R = Q % 12;
    res = "0123456789*#".charAt(R)+res;
    Q = (Q-R) / 12;
    if (Q == 0) break;
  }
  return ((intv<0) ? "-"+res : res);
}

function intfrac_to_doz(frac) {
  var len = frac.length;
  frac = parseFloat("0."+frac);
  var res="";
  while (len > 0) {
  var v = 0;
  var n = frac * 12;
  if (len > 1) {
   v = Math.floor(n);
  } else {
   v = Math.round(n);
  }
  frac = n - v;
  res += int_to_doz(v);
  len--;
  }
  return res;
}

  function to_doz(dec) {
  if (dec == "" || dec == "-") return dec;
  var res="";
  var parts = dec.split('.');
  intpart = parts[0];
  fracpart = parts[1];

  result = int_to_doz(intpart);

  if (parts.length > 1 && fracpart.length > 0) {
  result += ';'+intfrac_to_doz(fracpart);
  }

  return result;
  }

function intdoz_to_dec(intdoz) {
  var neg = false;
  if (intdoz.charAt(0) == '-') {
  intdoz = intdoz.substring(1);
  neg = true;
  }
  var res=0, n=0;
  for (i=0; i<intdoz.length; i++) {
    d = intdoz.charAt(i);
    if (d == '#') {
    n = 11;
    } else if (d == '*') {
    n = 10;
    } else {
    n = parseInt(d);
    }
    res += n*Math.pow(12,(intdoz.length-i-1));
  }
  if (neg) {
  res = '-'+res;
  }
  return res;
}

  function from_doz(doz) {
  if (doz == "" || doz == "-") return doz;
  var parts = doz.split(';');
  intpart = parts[0];
  fracpart = parts[1];

  var div_times = 0;
  var prec = 0;
  if (parts.length > 1) {
  prec = div_times = fracpart.length;
  intpart = intpart+fracpart;
  }

  result = intdoz_to_dec(intpart);

  while (div_times > 0) {
  result = result/12;
  div_times--;
  }

  result *= Math.pow(10,prec);
  result = Math.round(result);
  result /= Math.pow(10,prec);

  return result;
  }

  function decimal_changed() {
  var decval = document.dozcalc.decimal.value;
  var dozval = '';
  if (regex_DecimalNum.test(decval)) {
  dozval = to_doz(decval);
    document.dozcalc.dozenal.value=dozval;
    saved_dozenal = dozval;
    saved_decimal = decval;
  } else {
    alert('decimal field must contain decimal digits only\n'
   +'(0, 1, 2, 3, 4, 5, 6, 7, 8, and 9, with . and'
   +' - allowed in their proper places)');
    document.dozcalc.decimal.value=saved_decimal;
  }
  }

  function dozenal_changed() {
  var dozval = document.dozcalc.dozenal.value;
  var decval = '';
  if (regex_DozenalNum.test(dozval)) {
    decval = from_doz(dozval);
    document.dozcalc.decimal.value=decval;
    saved_decimal = decval;
    saved_dozenal = dozval;
  } else {
    alert('dozenal field must contain dozenal digits only\n'
   +'(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, #, with ; and'
   +' - allowed in their proper places)');
    document.dozcalc.dozenal.value=saved_dozenal;
  }
  }

  function do_calc() {
  }

  -->
</script>
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Валентин Н

я теперь понял - мы не правильно считаем.
Десять должно обозначатся цифрой, например нулём.
1 2 3 4 5 6 7 8 9 0
11 12 13 14 15 16 17 18 19 10
21.......................................20
31.......................................30
...
91 92 93 94 95 96 97 98 99 90
01 02 03 04 05 06 07 08 09 00
110...
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

arseniiv

do50, не везде есть формула хорошая, где есть хороший алгоритм.

Цитата: Валентин Н от июня  8, 2011, 22:46
Десять должно обозначатся цифрой, например нулём.
Экий бред. Экое аутентичное изыскание.

Валентин Н

Ну почему же? Считаем десятками, где каждый элемент назван уникально: один-цдесять
потом десяток и один - десяток и десять
два десятка и один итд
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

do50

Цитата: arseniiv от июня  8, 2011, 22:48
не везде есть формула хорошая, где есть хороший алгоритм.
согласен
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

Валентин Н

замените слово десяток на группа и всё станет ясно:
красный зелёный синий - спектр
спектр красный, спектр зелёный, спектр синий
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

basta

Валентин Н, спасибо, вы мне подарили хорошее настроение на несколько минут.

это потому что я пытался понять сообщение без контекста, и оно почудилось афазией.

Валентин Н

Действительно:
если мы считаем десятками то каждый его элемент надо назвать.

Если поставить каждому числу в соответствие цвет.
1- белый
2 - красный
3 - оранжевый
4 - жёлтый
5 - салатовый
6 - зелёный
7 - голубой
8 - синий
9 - коричневый
0 - чёрный
всё это десяток - палитра
11 - десять и один (палитра и белый) итд

А в нынешней системе палитрой (группой) называется последний элемент - что не логично.

Надеюсь идея понятна?
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!


Валентин Н

ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

Валентин Н

Цитата: Bhudh от июня  8, 2011, 22:01
Помню, Чип учил на двух руках до 1024 считать. ::)
Всё просто же.
Каждому пальцу соответствует число равное степени двойки - все разогнутые пальцы это 1023.

Но если менять направление пальцев вверх/вниз и поворачивать ладонь, можно считать и считать.
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

mnashe

Цитата: Валентин Н от июня  8, 2011, 23:17
Если поставить каждому числу в соответствие цвет.
1- белый
2 - красный
3 - оранжевый
4 - жёлтый
5 - салатовый
6 - зелёный
7 - голубой
8 - синий
9 - коричневый
0 - чёрный
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

Антиромантик

Интересно, а как дроби выражаются в недесятеричных системах, особенно иррациональные?

mnashe

Цитата: Антиромантик от июня 13, 2011, 16:30
Интересно, а как дроби выражаются в недесятеричных системах
В каком смысле как? Точно так же.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

Валентин Н

щас разрабатываю счёт для конланга - запутался вконец
ЗАБАНИЛ ВИКИПЕДИЮ
Нижниь ıндэкс в ҷıсʌах — степень тıсяҷı
Препинания авторские!

I. G.

Цитата: Bhudh от июня  8, 2011, 22:09
Не каждый влёт скажет, сколько в часе секунд.
Да ну, это на физике надрессировали.  :negozhe:
Забыла, у кого была статья про недесятичные системы исчисления в разных языках.  :(
...И мимимишечных круглышек,
Что безусловно хороши,
Но очень вредны для души.

 

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр