LINUX.ORG.RU
ФорумTalks

Двоичные числа


0

0

Необходимо перевести два десятичных числа в форму с фиксированной запятой в
16-разрядном формате, в форму с плавающей запятой в коротком формате ЕС ЭВМ, в форму с плавающей запятой в формате СМ ЭВМ, в форму с плавающей запятой в формате IEEE.
И два шестнадцатеричных в форму с плавающей запятой ЕС ЭВМ, в форму с плавающей запятой СМ ЭВМ, в форму с плавающей запятой IEEE.

Подскажите русские источники, где все это подробно объясняется на примерах. Я даже алгоритм не знаю...
Помогите бедному студенту, я между универом и армией ;)

> в коротком формате ЕС ЭВМ

IBM 360/370

> в формате СМ ЭВМ

PDP, VAX?

Use google, really.

Deleted
()
Ответ на: комментарий от Deleted

1. Универсальные ЭВМ (mainframe, System370, EC1010, EC1065, EC1087)
2. Мини ЭВМ (DEC, PDP-11, VAX-11, CM)
3. ПК IEEE754

Гугл это хорошо. Эти слова он знает, но вот то что мне надо, он не хочет выдавать.

rubbish
() автор топика

>Помогите бедному студенту, я между универом и армией ;)

думаю тебе лучше сходить послужить

Reset ★★★★★
()
Ответ на: комментарий от anonymous

Как я и предполагал - на английском.
Вот по этому я здесь и спрашиваю русские ресурсы.

rubbish
() автор топика
Ответ на: комментарий от Dominus

Как говорил Ричард Фейнман, если вы хотите обдурить психиатра просто скажите ему об этом.

Так что если просто заявлять психиатрам, что психически ненормальный, они _обязаны_ будут не пустить такого в армию :-))))

anonymous_incognito ★★★★★
()
Ответ на: комментарий от rubbish

Ты типа достаточно туп для этого. Заслуживаешь. И именно таких как ты наша Красная Армия и сама заслуживает.

One-Eye
()

не оно случаем?

           ПЛАВАЮЩАЯ  ТОЧКА  В  МИНИ-  И  МИКРО-  ЭВМ


	  Числа  с  плавающей  точкой  представляются

		в 4-ех и 8-ми байтных форматах

		  ____________________________
 		   | |          |               |
	  |------| |  Q см    |    I M I      |
	  |      |_|__________|_______________|
	  |	 31         23 22            0
	  |
	  |	   ____________________________________________
	  |       | |          |                               |
	  |-------| |  Q см    |          I M I                |
	  |       |_|__________|_______________________________|
	  |	  63 62      52 51                            0
	 знак



	  М - в прямом коде , причем   1/2 <= I M I < 1

	  Мантисса имеет "подразумеваемый" старший
          разряд  "1" с весом 1/2

	  Q - в смещенном коде

	  Q см = 2^7 + Q = 128 + Q = (80)H + Q

	  Q = Q см - 2^7 = Q см - 128 = Q см - (80)H

	  	 X = M * 2^Q

	  Q = (-127 - +127)

	  Q = -128   (Q см = 0) используется для представления
	            нулевого результата словом из всех нулей





		 Для определения числа, представленного
		 кодом нужно:

		 1. Определить знак числа

		 2. Определить величину порядка

		 3. Определить величину мантиссы
		    с учетом "подразумеваемой единицы

		 4. Вычислить результат как

			 Х = М * 2^Q






		 ПРИМЕР

		 Дан  код   C3200000
		 Определить десятичное число Х

	   1   100  0011  0    010 0000 0000 0000 0000 0000
	 знак    порядок                мантисса

	      1. Знак числа "-".

	      2. (10000110)B = (86)H - смещенный порядок
			 Q = (86)H - (80)H = 6 - порядок

	      3. I M I = (0.1010 0000 0000 0000 0000 0000)В =
	                    !
			 скрытая "1"
                                      = 1/2 + 1/2^3 = 0.625

		  X = -0.625000*2^(+006)




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

		1. Получить число в двоичном
		   виде  в форме с фиксированной точкой
		   и числом разрядов равным числу цифр
		   мантиссы (для слова  это 23 цифры,
		   для двойного слова - 55)

		2. Определить порядок для нормализо-
		   ванного представления мантиссы

		3. Сформировать код числа  с
		   учетом "скрытой" единицы






		  ПРИМЕР

		Дано десятичное число -25.625
		Записать его код в 4-ех байтном формате

		1. X = -25.625 = -(11001.101)H

		2. I M I = 0.11001101
		             !
			  скрытая "1"

		   Q = 5   ->   Q см = (85)H

		3.  1   1000 0101     1001 1010 0000
		  знак   порядок         мантисса

			 C 2 C D 0 0 0 0




           ПЛАВАЮЩАЯ  ТОЧКА  В  МИНИ-  И  МИКРО-  ЭВМ


	  Числа  с  плавающей  точкой  представляются

		в 4-ех и 8-ми байтных форматах

		  ____________________________
 		   | |          |               |
	  |------| |  Q см    |    I M I      |
	  |      |_|__________|_______________|
	  |	 31         23 22            0
	  |
	  |	   ____________________________________________
	  |       | |          |                               |
	  |-------| |  Q см    |          I M I                |
	  |       |_|__________|_______________________________|
	  |	  63 62      52 51                            0
	 знак



	  М - в прямом коде , причем   1/2 <= I M I < 1

	  Мантисса имеет "подразумеваемый" старший
          разряд  "1" с весом 1/2

	  Q - в смещенном коде

	  Q см = 2^7 + Q = 128 + Q = (80)H + Q

	  Q = Q см - 2^7 = Q см - 128 = Q см - (80)H

	  	 X = M * 2^Q

	  Q = (-127 - +127)

	  Q = -128   (Q см = 0) используется для представления
	            нулевого результата словом из всех нулей





		 Для определения числа, представленного
		 кодом нужно:

		 1. Определить знак числа

		 2. Определить величину порядка

		 3. Определить величину мантиссы
		    с учетом "подразумеваемой единицы

		 4. Вычислить результат как

			 Х = М * 2^Q






		 ПРИМЕР

		 Дан  код   C3200000
		 Определить десятичное число Х

	   1   100  0011  0    010 0000 0000 0000 0000 0000
	 знак    порядок                мантисса

	      1. Знак числа "-".

	      2. (10000110)B = (86)H - смещенный порядок
			 Q = (86)H - (80)H = 6 - порядок

	      3. I M I = (0.1010 0000 0000 0000 0000 0000)В =
	                    !
			 скрытая "1"
                                      = 1/2 + 1/2^3 = 0.625

		  X = -0.625000*2^(+006)




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

		1. Получить число в двоичном
		   виде  в форме с фиксированной точкой
		   и числом разрядов равным числу цифр
		   мантиссы (для слова  это 23 цифры,
		   для двойного слова - 55)

		2. Определить порядок для нормализо-
		   ванного представления мантиссы

		3. Сформировать код числа  с
		   учетом "скрытой" единицы






		  ПРИМЕР

		Дано десятичное число -25.625
		Записать его код в 4-ех байтном формате

		1. X = -25.625 = -(11001.101)H

		2. I M I = 0.11001101
		             !
			  скрытая "1"

		   Q = 5   ->   Q см = (85)H

		3.  1   1000 0101     1001 1010 0000
		  знак   порядок         мантисса

			 C 2 C D 0 0 0 0


hooj ★★
()
Ответ на: комментарий от hooj




		ПЛАВАЮЩАЯ  ТОЧКА  В  ПЕРСОНАЛЬНЫХ  ЭВМ



	  Числа  с  плавающей  точкой  представляются

	  4-ех , 8-ми или 10-ти байтными форматами


	  10-ти байтный формат используется только
	  для представления промежуточных результатов
	  вычислений и не используется в памяти.
	  Особенностью его является отсутствие
	  скрытого старшего разряда у мантиссы.





		  ____________________________
		 | |          |               |
          |------| |  Q'см    |    I M I      |
	  |      |_|__________|_______________|
	  |	 31         23 22            0
	  |
	  |	   ____________________________________________
	  |       | |          |                               |
	  |-------| |  Q'см    |          I M I                |
	  |       |_|__________|_______________________________|
	  |	  63 62      52 51                            0
	  |
	  |	   ____________________________________________
	  |       | |          |                               |
	  |-------| |  Q'см    |          I M I                |
	  |       |_|__________|_______________________________|
	  |       79 78      64 63                            0
	  |
	знак



	         М -задается прямым кодом

		 Для нормализованных чисел   1 <= I M I < 2

		 В поле мантиссы разряды имееют веса

		 от 2^(-1) до 2^(-23) и еще есть

		 скрытый "подразумеваемый" разряд

		 с весом 2^0 , всегда равный 1.


		 Q - в смещенном коде с отрицательным нулем








		 Q = (-126 - +127) в 4-ех байтном формате

		 Q = (-1022 - +1023) в 8-ми байтном

		 Q = Q'см - 127

		 для 4-ех байтного формата

		 Q = Q'см - 1023

		 для 8-ми байтного формата


			 X = M * 2^Q








		 Для определения числа, представленного
		 кодом нужно:

		 1. Определить знак числа

		 2. Определить величину порядка

		 3. Определить величину мантиссы
                    с учетом "подразумеваемой" единицы

		 4. Вычислить результат как

			 Х = М * 2^Q





		 ПРИМЕР

		 Дан  код   C8500000
		 Определить десятичное число Х

	1   100  1000  0    101 0000 0000 0000 0000 0000
       знак    порядок                мантисса

	  1. Знак числа "-".

	  2. (10010000)B = (90)H - смещенный порядок
               Q = (90)H - (7F)H = (11)H = 17 - порядок

	  3. I M I = (1.1010 0000 0000 0000 0000 0000)В =
	              !
		   скрытая "1"
										  = 1 + 1/2 + 1/2^3 = 1.625

		 X = -1.625000*2^(+017)




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

		1. Получить число в двоичном
		   виде  в форме с фиксированной точкой
		   и числом разрядов равным числу цифр
		   мантиссы (для слова  это 23 цифры,
		   для двойного слова - 55)

		2. Определить порядок для нормализо-
		   ванного представления мантиссы

		3. Сформировать код числа  с
		   учетом "скрытой" единицы





		  ПРИМЕР

		Дано десятичное число -6.5
		Записать его код в 4-ех байтном формате

		1. X = -6.5 = -(110.1)H

		2. I M I = 1.101
		           !
			скрытая "1"

			Q = 2   ->   Q см = (81)H

		3.  1   1000 0001     1010 0000
		  знак   порядок       мантисса

			 C 0 D 0 0 0 0 0






	  Денормализованные числа с I M I < 1 также
	  могут быть представлены 4-ех или 8-ми
	  байтным форматом, но только при нулевом
	  значении смещенного порядка. Скрытый
	  старший разряд мантиссы считается при
	  этом равным нулю.

	  Соответственно +0  и  -0 представляются
	  при Q'см = 0

	  Код Q'см из всех единиц используется
	  для представления переполнений, потери
	  значимости или НЕ-чисел.





hooj ★★
()
Ответ на: комментарий от hooj

ЕС ЭВМ : ФИКСИРОВАННАЯ ТОЧКА СО ЗНАКОМ.

Целые со знаком представляются : ______________ полусловом |______________| 4 цифры ______________________ словом |______________________| 8 цифр _____________________________________ двойным словом |_____________________________________| 16 цифр

Числа представляются в 16-ой системе счисления.

Значение "0" разряда определяет знак числа : 0 - положительное число , 1 - отрицательное .

_______________________________________________________________ | | | Во всех наших примерах, за исключением особо | | | | оговариваемых случаев, будет использоваться | | | | формат полуслова. | |_______________________________________________________________|

Для определения десятичного эквивалента числа нужно записать его в 10-ой системе счисления.

ПРИМЕР1.

Полуслово 0101 0000 1010 0111

представляет 16-ое число 50А7 , которое

в десятичном виде равно : 5*16^3 + 10*16 + 7 = 20647

Для получения кода десятичного числа нужно представить его в 16-ом виде.

ПРИМЕР2.

Пусть дано десятичное число 450 , тогда

его 16-ый эквивалент равен 1С2 и получается полуслово

0000 0001 1100 0010 .

Для компактности записи можно записывать коды в

16-ом виде : 01С2 .

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

-Х заменяется на 2^n - I x I ,

где n - число двоичных разрядов в формате. Либо 16^m - I x I , где m - число 16-ых разрядов.

Для получения дополнительного кода необходимо:

инвертировать код и прибавить "1" к младшему разряду.

Такая же процедура применяется для получения I х I по заданному коду.

ПРИМЕР1.

Пусть дан код ffс2 . Найти число Х.

1111 1111 1100 0010 исходный код 0000 0000 0011 1101 инверсия кода 0000 0000 0011 1110 инверсия кода + 1 I х I = 0 0 3 е

I х I = - (3*16 + 14) = -62 .

ПРИМЕР2.

Найти код числа -30 и представить его полусловом.

16-ый эквивалент 30 равен 1Е. Следовательно, дополнительный код равен FFE2.

При расширении формата чисел со знаком слева а) для положительных чисел приписываются нули, б) для отрицательных чисел слева приписываются F.

Пример.

Перейти от полуслова 01С5 к слову

01С5 000001С5

Перейти от полуслова 81С5 к слову

81С5 FFFF81С5

ЕС ЭВМ : ФИКСИРОВАННАЯ ТОЧКА СО ЗНАКОМ.

Целые со знаком представляются : ______________ полусловом |______________| 4 цифры ______________________ словом |______________________| 8 цифр _____________________________________ двойным словом |_____________________________________| 16 цифр

Числа представляются в 16-ой системе счисления.

Значение "0" разряда определяет знак числа : 0 - положительное число , 1 - отрицательное .

_______________________________________________________________ | | | Во всех наших примерах, за исключением особо | | | | оговариваемых случаев, будет использоваться | | | | формат полуслова. | |_______________________________________________________________|

Для определения десятичного эквивалента числа нужно записать его в 10-ой системе счисления.

ПРИМЕР1.

Полуслово 0101 0000 1010 0111

представляет 16-ое число 50А7 , которое

в десятичном виде равно : 5*16^3 + 10*16 + 7 = 20647

Для получения кода десятичного числа нужно представить его в 16-ом виде.

ПРИМЕР2.

Пусть дано десятичное число 450 , тогда

его 16-ый эквивалент равен 1С2 и получается полуслово

0000 0001 1100 0010 .

Для компактности записи можно записывать коды в

16-ом виде : 01С2 .

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

-Х заменяется на 2^n - I x I ,

где n - число двоичных разрядов в формате. Либо 16^m - I x I , где m - число 16-ых разрядов.

Для получения дополнительного кода необходимо:

инвертировать код и прибавить "1" к младшему разряду.

Такая же процедура применяется для получения I х I по заданному коду.

ПРИМЕР1.

Пусть дан код ffс2 . Найти число Х.

1111 1111 1100 0010 исходный код 0000 0000 0011 1101 инверсия кода 0000 0000 0011 1110 инверсия кода + 1 I х I = 0 0 3 е

I х I = - (3*16 + 14) = -62 .

ПРИМЕР2.

Найти код числа -30 и представить его полусловом.

16-ый эквивалент 30 равен 1Е. Следовательно, дополнительный код равен FFE2.

При расширении формата чисел со знаком слева а) для положительных чисел приписываются нули, б) для отрицательных чисел слева приписываются F.

Пример.

Перейти от полуслова 01С5 к слову

01С5 000001С5

Перейти от полуслова 81С5 к слову

81С5 FFFF81С5

hooj ★★
()
Ответ на: комментарий от hooj

да ёпт... впизду, если надо - свисти, у меня еще с универа стыренный туториал валяется. Как раз подойдет.

hooj ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.