Системы счисления
план-конспект урока информатики и икт (10 класс) по теме
Предварительный просмотр:
СИСТЕМЫ СЧИСЛЕНИЯ
(Перевод чисел из одной системы счисления в другую)
Пример записи числа в десятичной позиционной системе счисления:
4 3 2 1 0 -1 -2 -3
38438.34510 = 3×104 + 8×103 +4×102 +3×101+8×100 +3×10-1 +4×10-2 +5×10-3
Справочная таблица
10 2 16 x 2x
0 0000 0 0 1
1 0001 1 1 2
2 0010 2 2 4
3 0011 3 3 8
4 0100 4 4 16
5 0101 5 5 32
6 0110 6 6 64
7 0111 7 7 128
8 1000 8 8 256
9 1001 9 9 512
10 1010 A 10 1024
11 1011 B 11 2048
12 1100 C 12 4096
13 1101 D 13 8192
14 1110 E 14 16384
15 1111 F 15 32768
16 10000 10 16 65536
17 10001 11 17 131072
18 10010 12 18 262144
19 10011 13 19 524288
20 10100 14 20 1048576
21 10101 15 21 2097152
22 10110 16 22 4194304
23 10111 17 23 8388608
24 11000 18 24 16777216
25 11001 19 25 33554432
26 11010 1A 26 67108864
27 11011 1B 27 134217728
28 11100 1C 28 268435456
29 11101 1D 29 536870912
30 11110 1E 30 1073741824
31 11111 1F 31 2147483648
32 100000 20 32 4294967296
Задачи
C = 45 ¸ 60; N – номер варианта (у каждого ученика свой)
- Число 3 ´ (N + C) + 1 перевести из десятичной формы записи в двоичную.
- Полученное в двоичном виде число перевести в шестнадцатеричную форму записи.
- Полученное шестнадцатеричное число перевести в десятичную форму записи.
- К числу в шестнадцатеричном виде прибавить 3F16, затем последовательно перевести в двоичную и в десятичную форму записи.
Примеры решения задач
1. Число 438 перевести из десятичной формы записи в двоичную
438 2
0 219 2
1 109 2
1 54 2
0 27 2
1 13 2
1 6 2
0 3 2
1 1
43810 = 1 1011 01102
Проверка результата обратным переводом из двоичной формы записи в десятичную
8 7 6 5 4 3 2 1 0
1 1011 01102 = 1×28 + 1×27 + 0×26 + 1×25 + 1×24 + 0×23 + 1×22 + 1×21 + 0×20 =
= 28 + 27 + 25 + 24 + 22 + 21 = 256 + 128 + 32 + 16 + 4 + 2 = 43810
2. Полученное в двоичном виде число перевести в шестнадцатеричную форму записи.
Двоичное число, начиная справа, разбиваем на тетрады (по четыре цифры) и каждую тетраду заменяем соответствующей шестнадцатеричной цифрой (см. таблицу):
1 1011 01102 = 1B616
3. Полученное шестнадцатеричное число перевести в десятичную форму записи.
2 1 0
1B616 = 1×162 + 11×161 + 6×160 = 256 + 176 + 6 = 43810
4. К числу в шестнадцатеричном виде прибавить 3F16, затем последовательно перевести в двоичную и в десятичную форму записи.
Каждую шестнадцатеричную цифру заменим соответствующей тетрадой (см. таблицу), таким образом получим двоичное число:
8 7 6 5 4 3 2 1 0
1F516 = 1 1111 01012 = 28 + 27 + 26 + 25 + 24 + 22 + 20 =
= 256 + 128 + 64 + 32 + 16 + 4 + 1 = 50110
Для сравнения, переведём из шестнадцатеричной системы в десятеричную:
2 1 0
1F516 = 1×162 + 15×161 + 5×160 = 256 + 240 + 5 = 50110
'*************************************************************************
'* k0_1_x10.bas Программа преобразования из заданной формы *
'* ------------ представления числа в десятичную *
'* *
'* Август 1995 г. Автор: Перчиц С.Н. *
'*************************************************************************
'
INPUT "Из какой системы счисления преобразовывать? m = "; m
INPUT "N = "; sn$
l = LEN(sn$)
n = 0
FOR I = 1 TO l
s$ = MID$(sn$, I, 1)
ks = ASC(s$)
IF ks < 65 THEN dn = VAL(s$) ELSE dn = ks - 55
n = n * m + dn
NEXT I
PRINT sn$; " = "; n
END
'*************************************************************************
'* K0_1_DX.BAS Программа преобразования из 10-чной формы *
'* ----------- представления числа в требуемую *
'* *
'* Апрель 2011 г. Автор: Перчиц С.Н. *
'*************************************************************************
'
Enter$ = CHR$(13)
kd0 = ASC("0")
kdb = ASC("A") - 10
PRINT Enter$
INPUT "В какую систему счисления преобразовывать? m = "; m
DO
PRINT Enter$
INPUT "N = "; n1
PRINT n1; "= ";
IF n1 < 0 THEN
n = 65536 + n1
ELSE
n = n1
END IF
b$ = ""
DO
n1 = n MOD m
IF n1 < 10 THEN b$ = CHR$(n1 + kd0) + b$ ELSE b$ = CHR$(n1 + kdb) + b$
IF n < m THEN EXIT DO
n = n \ m
LOOP
PRINT b$
PRINT Enter$; Enter$; "Повторить ?"
DO
w$ = INKEY$
LOOP WHILE w$ = ""
LOOP WHILE w$ <> CHR$(27)
END
ПРЕДСТАВЛЕНИЕ ЧИСЕЛ В ЭВМ
Задачи
C = 45 ¸ 60
- Записать машинные коды двух целых десятичных чисел с фиксированной точкой A = –3´(N+C)+1 и B=3´(C–N) в 16-ти разрядной сетке. В ответе использовать 2-ю и 16-ю системы счисления.
- Выполнить операцию сложения машинных кодов двух целых чисел A и B с фиксированной точкой в 16-ти разрядной сетке. В качестве ответа записать код результата (в 2-й и 16-й системах счисления) и десятичное число, соответствующее этому коду.
- Числа ±((3´(N+C)+1)+(N+1)´0.03125) записать в разрядной сетке слова (32 разряда) в форме числа с плавающей точкой (с учётом смещённого порядка)
Для IBM PC: (-1)S ´ 2E-127 ´ 1.F
S | E | F |
31 30 23 22 0
Пример: 20.5937510 = 10100 + 0.10011 = 10100.10011
1.010010011´24 – после нормализации
S = 0; E = 127 + 4 = 131 = 10000011; F = 010010011
Тогда: 20.5937510 = 41A4C00016
Для IBM 360 и IBM 370: (-1)S ´ 16E-64 ´ 0.F
0 1 7 8 31
S | E | F |
31 30 24 23 0
Пример: 20.5937510 = 10100 + 0.10011 = 10100.10011
0.0001010010011´162 – после нормализации
S = 0; E = 64 + 2 = 66 = 1000010; F = 0001010010011
Тогда: 20.5937510 = 4214980016
Примеры решения задач
C = 110; N = 6
- Записать машинные коды двух целых десятичных чисел с фиксированной точкой и в 16-ти разрядной сетке. В ответе использовать 2-ю и 16-ю системы счисления.
+34910 = 1 0101 11012 = 15D16
0000 0001 0101 1101 – прямой код
1111 1110 1010 0010 – обратный код
1111 1110 1010 0011 – дополнительный код
(дополнительный код = обратный код + 1)
Числа представляются в ЭВМ в дополнительном коде, так число –34910 будет представлено как:
1111 1110 1010 00112 или FEA316
Дополнительный код числа можно получить и иначе:
1000016 – 15D16 = FEA316
349 2
1 174 2
0 87 2
1 43 2
1 21 2
1 10 2
0 5 2
1 2 2
0 1
31210 = 1 0011 10002 = 13816
0000 0001 0011 1000– прямой код
Прямой и дополнительный код положительного числа выглядят одинаково, поэтому число +31210 будет представлено в ЭВМ как:
0000 0001 0011 10002 или 013816
312 2
0 156 2
0 78 2
0 39 2
1 19 2
1 9 2
1 4 2
0 2 2
0 1
- Выполнить операцию сложения машинных кодов двух целых чисел A и B с фиксированной точкой в 16-ти разрядной сетке. В качестве ответа записать код результата (в 2-й и 16-й системах счисления) и десятичное число, соответствующее этому коду.
FEA316 + 013816 = FFDB16 или 1111 1111 1101 10112
Для получения десятичного числа по его коду, поскольку получившееся число отрицательное (старший бит равен единице), сделаем обратное преобразование из дополнительного кода в прямой:
1111 1111 1101 1011 – дополнительный код
+
0000 0000 0010 0100
1
0000 0000 0010 0101 – прямой код
0000 0000 0010 01012 = 2516 = 2×16 + 5 = 37. Таким образом, число соответствующее этому коду, равно –37. (Проверка: –349 + 312 = –37).
Здесь также прямой код числа можно получить иначе: 1000016 – FFDB16 = 2516
- Числа ±349.1875 записать в разрядной сетке слова (32 разряда) в форме числа с плавающей точкой (с учётом смещённого порядка)
34910 = 1 0101 11012
Переведём дробную часть числа (0.1875) в двоичную форму:
×
0 1875
0.187510 = 0.00112
Проверка:
-1 -2 -3 -4
0.00112 = 2-3 + 2-4 =
2
×
0 3750
2
×
0 7500
2
×
1 5000
2
1 0000
Т.е.:
349.187510 = 1 0101 1101.00112
1.0101 1101 0011´28 – после нормализации
S = 0; E = 127 + 8 = 135 = 1000 0111; F = 0101 1101 0011
Т.о. +349.187510 представлено как:
0100 0011 1010 1110 1001 1000 0000 00002 или 43AE980016
Отрицательное число –349.187510 представлено как (здесь S = 1, а E и F прежние):
1100 0011 1010 1110 1001 1000 0000 00002 или C3AE980016
'*************************************************************************
'* k0_1_i.bas К КОНТРОЛЬНОЙ РАБОТЕ N 1 (10 класс) *
'* ---------- *
'* Представление целых чисел в ЭВМ типа IBM PC *
'* *
'* Август 2009г. Автор: Перчиц С.Н. *
'*************************************************************************
DEFINT A-B, I
CLS
DIM bt(2)
DO
INPUT "Введите значение целой переменной -> ", a
adr = VARPTR(a)
PRINT "переменная a ="; a
PRINT "ее адрес ="; adr
FOR i = 1 TO 2
bt(i) = PEEK(adr + i - 1)
NEXT i
PRINT "Переменная записана в памяти как: ";
FOR i = 2 TO 1 STEP -1
IF bt(i) < 16 THEN PRINT HEX$(0);
PRINT HEX$(bt(i));
NEXT i
PRINT "Повторить?"
DO
w$ = INKEY$
LOOP WHILE w$ = ""
LOOP WHILE w$ = CHR$(13)
'*************************************************************************
'* k0_1_f.bas К КОНТРОЛЬНОЙ РАБОТЕ N 1 (10 класс) *
'* ---------- *
'* Представление вещественных чисел в ЭВМ типа IBM PC *
'* *
'* Август 2009г. Автор: Перчиц С.Н. *
'*************************************************************************
DEFINT I
CLS
DIM bt%(4)
DO
INPUT "Введите значение вещественной переменной -> ", a
adr% = VARPTR(a)
PRINT "переменная a ="; a
PRINT "ее адрес ="; adr%
FOR i = 1 TO 4
bt%(i) = PEEK(adr% + i - 1)
NEXT i
PRINT "Переменная записана в памяти как: ";
FOR i = 4 TO 1 STEP -1
IF bt%(i) < 16 THEN PRINT HEX$(0);
PRINT HEX$(bt%(i));
NEXT i
PRINT "Повторить?"
DO
w$ = INKEY$
LOOP WHILE w$ = ""
LOOP WHILE w$ = CHR$(13)
По теме: методические разработки, презентации и конспекты
Урок-закрепление по теме: "Системы счисления. Перевод целых чисел из одной позиционной системы счисления в другую"
Целью данного урока является закрепление учащимися 8-го класса умений по переводу целых чисел из одной системы счисления в другую. В ходе урока учащиеся работают в группах по 2-3 человека. Самос...
Системы счисления. Основные понятия. Двоичная система счисления
Мультимедийная презентация содержит основные понятия по теме "Системы счисленя". Двоичная система счисления представлена в презентации по следующей схеме: основание, узловые и алгоритмические числа, п...
Урок по теме «Системы счисления. Двоичная система счисления» предназначен для изучения в 9 классах.
Урок по теме «Системы счисления. Двоичная система счисления» предназначен для изучения в 9 классах.На уроке раскрывается понятие «Системы счисления», рассматриваются примеры систем счисления, а также ...
Перевод чисел из 2 системы счисления в системы счисления с основаниям 2
Разработка урока...
Системы счисления. Перевод чисел из одной системы счисления в другую систему счисления.
План-конспект урока с использованием ЭОР "Системы счисления. Перевод чисел из одной системы счисления в другую систему счисления"....
Урок-игра по информатике и ИКТ в 8 классе по теме: «Системы счисления. Перевод из одной системы счисления в другие, арифметические операции в двоичной системе счисления»
Урок-игра по информатике и ИКТ в 8 классе по теме: «Системы счисления. Перевод из одной системы счисления в другие, арифметические операции в двоичной системе счисления»...
«Системы счисления. Перевод из одной системы счисления в другие, арифметические операции в двоичной системе счисления»
систематизировать знания учащихся по теме «Системы счисления. Перевод из одной системы счисления в другие, арифметические операции в двоичной системе счисления»...