Перевод чисел из одной системы счисления в любую другую онлайн

Единичная система счисления.

С первых попыток научиться считать у людей  возникла необходимость записи чисел. Сначала это было легко — зарубка либо черточка на любой поверхности отвечала за один предмет. Таким образом возникла первая система счисления — единичная.

Число в единичной системе счисления представляет собой строку из черточек (палочек), количество которых равно значению данного числа. Таким образом, урожай из 100 фиников будет равен числу, состоящему из 100 черточек.

В более позднее время для упрощения восприятия больших чисел, эти знаки стали группировать по три или по пять. Далее равнообъёмные группы знаков начали заменять новым знаком — так возникли прообразы современных цифр.

У данной системы есть значительные недостатки — чем больше число,  тем длиннее строка из палочек. Кроме того, существует большая вероятность в записи числа, пропустив или случайно дописав палочку.

Изначально в счете использовали пальцы рук, поэтому первые знаки появились для групп из 5 и 10 штук (единиц). Все это позволило создать более удобные системы записи чисел.

Вавилонская шестидесятеричная система счисления.

В вавилонской системе счисления использовали только 2 символа: “прямой” клин — для единиц и “лежащий” — для десятков. Для определения значения числа нужно изображение числа разбить на разряды справа налево. Новый разряд начинается с появления прямого клина после лежачего. Для примера посмотрим на  число 32:

Число 60 и все его степени так же обозначаются прямым клином, что и “1”. Поэтому вавилонская система счисления получила название шестидесятеричной системы счисления.

Все числа от 1 до 59 вавилоняне записывали в десятичной непозиционной системе, а значения больше 59 — в позиционной с основанием 60. Например, число 92:

Запись числа была не конкретной, так как не было цифры, которая обозначала бы нуль. Представление числа 92 могло обозначать не только 92=60+32, но и, например, 3632=3600+32. Для определения абсолютного значения числа они ввели новый символ для обозначения пропущенного шестидесятеричного разряда, что соответствует появлению цифры 0 в записи десятичного числа:

Значит, число 3632 записывают так:

Шестидесятеричная вавилонская система — первая система счисления, которая частично основана на позиционном принципе. Эту систему счисления используют и сейчас, например, для определения времени — час состоит из 60 минут, а минута из 60 секунд.

Типы систем счисления

Самое главное, что нужно знать о системе счисления – её тип: аддитивная или мультипликативная. В первом типе каждая цифра имеет своё значение, и для прочтения числа нужно сложить все значения использованных цифр:

XXXV = 10+10+10+5 = 35;
CCXIX = 100+100+10–1+10 = 219;

Во втором типе каждая цифра может иметь разные значения в зависимости от своего местоположения в числе:

(иероглифы по порядку: 2, 1000, 4, 100, 2, 10, 5)

Здесь дважды использован иероглиф “2”, и в каждом случае он принимал разные значения “2000” и “20”.

2´ 1000 + 4´ 100+2´ 10+5 = 2425

Для аддитивной (“добавительной”) системы нужно знать все цифры-символы с их значениями (их бывает до 4-5 десятков), и порядок записи. Например, в Латинской записи если меньшая цифра записана перед большей, то производится вычитание, а если после, то сложение (IV = (5–1) = 4; VI = (5+1) = 6).

READ  Частотный регулятор для регулировки скорости вращения асинхронного двигателя

Для мультипликативной системы нужно знать изображение цифр и их значение, а так же основание системы счисления. Определить основание очень легко, нужно только пересчитать количество значащих цифр в системе. Если проще, то это число, с которого начинается второй разряд у числа. Мы, например, используем цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Их ровно 10, поэтому основание нашей системы счисления тоже 10, и система счисления называется “десятичная”. В вышеприведенном примере используются цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (вспомогательные 10, 100, 1000, 10000 и т. д. не в счет). Основных цифр здесь тоже 10, и система счисления – десятичная.

Как можно догадаться, сколько есть чисел, столько же может быть и оснований систем счисления. Но используются только самые удобные основания систем счисления. Как вы думаете, почему основание самой употребительной человеческой системы счисления 10? Да, именно потому, что на руках у нас 10 пальцев. “Но на одной то руке всего пять пальцев” – скажут некоторые и будут правы. История человечества знает примеры пятеричных систем счисления. “А с ногами – двадцать пальцев” – скажут другие, и будут тоже абсолютно правы. Именно так считали индейцы Майя. Это даже видно по их цифрам.

Очень интересно понятие “дюжина”. Всем известно, что это 12, но откуда появилось такое число – мало кто знает. Посмотрите на свои руки, вернее, на одну руку. Сколько фаланг на всех пальцах одной руки, не считая большого? Правильно, двенадцать. А большой палец предназначен отмечать отсчитанные фаланги.

А если на другой руке откладывать пальцами количество полных дюжин, то получим всем известную шестидесятеричную вавилонскую систему.

В разных цивилизациях считали по–разному, но и сейчас можно даже в языке, в названиях и изображениях цифр найти остатки совсем других систем счисления, когда–то использовавшихся этим народом.

Так у французов когда-то была двадцатеричная система счисления, поскольку 80 по-французски звучит как “четырежды двадцать”.

Римляне, или их предшественники использовали когда-то пятеричную систему, так как V ни что иное, как изображение ладони с отставленным большим пальцем, а X – это две таких же руки.

Немного исходников

Кому интересно, выкладываю исходники (: Написаны, само собой, на JS. На Java в целом всё выглядит так же, с той лишь разницей, что надо везде типы определить и соответствующие приведения типов сделать.

Для перевода целого числа в десятиричную с.с. в JS достаточно всего одну строку написать:

//sNumber - исходное число
//sSystem - система счисления числа
//на выходе число в десятичной с.с.
return parseInt(sNumber, sSystem);

Для перевода из десятиричной в другую с.с. немного посложнее:

this.fromDecInt= function(sNumber, rSystem){
	var res = "";
	var resDiv = Math.floor(sNumber/rSystem);
	var newSNumber = sNumber;
	if(resDiv>=rSystem)
	{
		while(resDiv>=rSystem)
		{
			resDiv = Math.floor(newSNumber/rSystem);
			var mod = newSNumber-resDiv*rSystem;
			if(mod>=10)
				res+= String.fromCharCode(65+mod-10);
			else
				res+=mod;
					
			newSNumber = resDiv;
		}
	}
	else		
		res=res+(newSNumber-0-resDiv*rSystem);  		
	res+=resDiv;
	var totalResult = "";
	var length =  res.length;
	
	for(i=length-1;i>=0;--i)
			 totalResult+=res.substring(i,i+1);
	return totalResult;	
}

Для дробных чисел целая часть считается функциями описанными выше. Дробная как-то так:

Алгоритмы перевода в системы счисления по разным основаниям

Алгоритм перевода чисел из любой системы счисления в десятичную

  1. Представить число в развернутой форме. При этом основание системы счисления должно быть представлено в десятичной системе счисления.
  2. Найти сумму ряда. Полученное число является значением числа в десятичной системе счисления.
READ  Вентиляция и центральное кондиционирование

Алгоритм перевода целых чисел из десятичной системы счисления в любую другую

  1. Последовательно выполнять деление данного числа и получаемых целых частных на основание новой системы счисления до тех пор, пока не получится частное, меньше делителя.
  2. Полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления.
  3. Составить число в новой системе счисления, записывая его, начиная с последнего остатка.

Алгоритм перевода правильных дробей из десятичной системы счисления в любую другую

  1. Последовательно умножаем данное число и получаемые дробные части произведения на основание новой системы счисления до тех пор, пока дробная часть произведения не станет равна нулю или будет достигнута требуемая точность представления числа.
  2. Полученные целые части произведений, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления.
  3. Составить дробную часть числа в новой системе счисления, начиная с целой части первого произведения.

Алгоритм перевода произвольных чисел из десятичной системы счисления в любую другую

  1. Отдельно переводится целая часть.
  2. Отдельно переводится дробная.
  3. В итоговой записи полученного числа целая часть отделяется от дробной запятой.

Перевод чисел из двоичной системы счисления в систему счисления с основанием q=2n

 Десятичная  Двоичная  Восьмеричная  Шестнадцатеричная
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
  1. Двоичное число разбить справа налево на группы по n в каждой.
  2. Если в левой последней группе окажется меньше n разрядов, то её надо дополнить слева нулями до нужного числа разрядов.
  3. Рассмотреть каждую группу как n-разрядное двоичное число и записать её соответствующей цифрой в системе счисления с основанием q=2n

Системы счисления и их разновидности.

Система счисления – это способ представления, записи чисел с помощью письменных знаков. Количество этих самых знаков (цифр), используемых для записи чисел, называется основанием системы счисления.

Различных систем счисления у разных народов существовало великое множество. Но все их можно поделить на непозиционные и позиционные. Позиционные системы в свою очередь подразделяются на однородные и смешанные.

1. Непозиционные системы счисления.

В непозиционных системах счисления число, обозначаемое цифрой, не зависит от положения цифры в записи числа.

Самым простым примером непозиционной системы счисления является единичная (унарная) система счисления. Это запись числа с помощью повторения зарубок на дощечке или узелков на веревке. Все зарубки, узелки или другие «цифры» абсолютно одинаковы, а потому их порядок не имеет значения, число получается простым суммированием количества символов.

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

Еще одной используемой до сих пор почти непозиционной системой счисления является Римская:

Она названа почти непозиционной, потому что в Римской системе, кроме обычного сложения цифр в числе, действует правило: если младшая цифра стоит слева от старшей, она вычитается из суммы.
Т.е. число , а число

Непозиционных систем счисления известно очень много, но мы завершим на этом их рассмотрение. Использование непозиционных систем неудобно, а для очень больших чисел практически невозможно, и к тому же нет возможности записать дроби.

READ  Плк110 программируемый логический контроллер

2. Позиционные системы счисления.

В позиционных системах счисления число, обозначаемое цифрой, зависит от положения цифры в записи числа.
Самой популярной позиционной системой является, конечно же, десятичная.

Мы видим, что числа 15 и 51 имеют совсем разные значения, хотя состоят из одних и тех же цифр. Разница обусловлена положением цифры в числе.

Но десятичная система ничем не лучше и не хуже другой позиционной системы, она просто привычная. Число 10 выбрано основанием по количеству пальцев на двух руках (для удобства счета). Однако, в Китае популярной была пятиречная система счисления (по количеству пальцев на одной руке), а двадцатиричная система использовалась у Ацтеков, Майя и некоторых народов Африки (по количеству пальцев на ногах и руках).

Еще одной известной позиционной системой счисления является двенадцатиричная (считали фаланги пальцев (кроме большого) на руке. Элементы двенадцатиричной системы сохранились в Англии: 1 фут = 12 дюймов, 1 шиллинг = 12 пенсов.

Ну и, наконец, незаменимая в наш компьютерный век двоичная система. Почему именно двоичная? Да потому что у компьютера только 2 «пальца», точнее два состояния: «есть ток», «нет тока».

2.1. Однородные системы счисления.

В однородной системе в каждой позиции числа может находиться любая цифра. Примером может быть запись числа в любой позиционной системе счисления (десятичной, двоичной и пр.). Т.е. когда мы пишем число в десятичной системе, в любой позиции мы можем написать цифру от 0 до 9.

2.2. Смешанные системы счисления.

В смешанной системе счисления набор используемых цифр может отличаться в зависимости от позиции. В качестве примера удобно рассмотреть запись времени в формате ЧЧ.ММ.СС (часы.минуты.секунды). В качестве часов может быть использовано число от 00 до 23, в качестве минут и секунд – число от 00 до 59.

Перевод чисел: из десятичной в двоичную

Перевод в системах счисления чисел происходит по определенным правилам. Наиболее часто встречается перевод из двоичной в десятичную систему и наоборот.

Для того, чтобы перевести число из десятичной системы в двоичную, необходимо последовательно делить его на основание системы счисления, то есть, число два. При этом, остаток от каждого деления необходимо фиксировать. Так будет происходить до тех пор, пока остаток от деления не будет меньше или равен единице. Проводить вычисления лучше всего в столбик. Затем полученные остатки от деления записываются в строку в обратном порядке.

Например, переведем число 9 в двоичную систему:

Делим 9, так как число не делится нацело, то берем число 8, остаток будет 9 – 1 = 1.

После деления 8 на 2 получаем 4. Снова делим его, так как число делится нацело – получаем в остатке 4 – 4 = 0.

Проводим ту же операцию с 2. В остатке получаем 0.

В итоге деления у нас получается 1.

Далее записываем все полученные нами остатки в обратном порядке, начиная с итога деления: 1001.

Вне зависимости от итоговой системы счисления, перевод чисел из десятичной в любую другую будет происходить по принципу деления числа на основу позиционной системы.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: