программирование на языке бейсик

 

УРОК 5. Шестнадцатеричная система счисления

Так как двоичное представление довольно громоздко, особенно при больших количествах чисел, то на практике применяют шестнадцатеричную систему счисления. Так, число –4 (1111 1111 1111 1100b) представляется как FFFCh. При просмотре содержимого памяти (так называемый дамп от слова Dump) или файла обычно используется 16ричная система счисления для того, чтобы вместить больше информации на экран. Кроме того, люди, привыкшие к десятичной системе, быстро привыкают к этой системе.

Шестнадцатеричная система отличается от десятичной тем, что в ней не десять, а шестнадцать цифр, а так как для их обозначения не хватает десяти цифр, то используются символы. Вот эти цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, где F - последняя цифра имеет значение 15. Как правило, после числа используют символ H или h от слова Hexadecimal - шестнадцатеричный для того, чтобы отличить эту систему от десятичной. Например, число 10Н равно 16 в десятичном исчислении.

Приведем примеры первых чисел этой системы: 1h, 2h, 3h, 4h, 5h, 6h, 7h, 8h, 9h, Ah, Bh, Ch, Dh, Eh, Fh, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 18h, 19h, 1Ah, 1Bh, 1Ch , 1Dh, 1Eh, 1Fh, 20h, …, где 20h равно 32.

Для того, чтобы перевести из шестнадцатеричной системы двухзначное число, например, 5АН, надо произвести следующую операцию: число десятков умножить на 16 и прибавить единицы. То есть, 5Ah=5х16+10=90, где A=10. В общем случае шестнадцатеричное число а1а2а3а4 из четырех цифр можно представить в виде: а1х163 + а2х162 + а3х161 + а4х160. Например, 1234h= 1х163 + 2х162 + 3х161 + 4х160 = 4096 + 512 + 48 + 4 = 4660. Для того, чтобы произвести обратное преобразование из десятичной системы в шестнадцатеричную, необходимо разделить число на 16, потом записать целое число - частное и остаток (для двузначных чисел). Например, 90 : 16 = 5, остаток равен 10. Таким образом, получаемое число равно 5Аh, где А=10. Вряд ли потребуется умножать или делить шестнадцатеричные числа между собой, поэтому эти операции здесь не приводятся.

Нижеприведенная таблица позволяет переводить числа из десятичной системы в шестнадцатеричную и обратно.



00

01

02

03

04

05

06

07

08

09

0A

0B

0C

0D

0E

0F

00

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

10

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

20

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

30

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

40

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

50

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

60

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

70

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

80

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

90

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

A0

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

B0

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

C0

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

D0

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

E0

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

F0

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

 

Для того, чтобы перевести число в шестнадцатеричном виде 83h, нужно найти число в строчке 80 и столбец 3. На их пересечении находится десятичное число 131. Таким образом, 83h=131. Для обратного перевода нужно найти десятичное число в таблице и взять числа слева в строке и сверху в столбце. Так, число 149 находится в строке 90, столбце 05, поэтому его значение в шестнадцатеричной системе будет 95h

Шестнадцатеричные числа можно, как и двоичные, перевести в десятичную систему, деля его на 16. Приведем пример:

1234 : 16 = 77 (2)

77 : 16 = 4 (13)

4 : 16 = 0 (4)

В правой части написана целая часть результата деления и в скобках остаток. Выпишем цифры остатка и получим 4D2h, где Dh = 13

Для того, чтобы перевести дробную часть, нужно умножить ее на 16. Приведем пример.

0,1125 х 16 = 1,8 (1)

0,8 х 16 = 12,8 (12)

0,8 х 16 = 12,8 (12)…

Как видно образовался цикл, поэтому можно прервать вычисления. Результатом будет число 0,1C(С)h, где Сh = 12.

Операция сложения двух шестнадцатеричных чисел похожа на операцию для десятичных чисел. Приведем пример.

4Dh

+ 9Ah

    F3h

Вначале сложим правые цифры Dh (13) и Ah (10). Получим 23, три запишем, а два запомним в уме, далее сложим 4 + 9 + 2 (из предыдущего столбца) = 15 (или Fh), поэтому запишем F.

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

9Ah

- 4Еh

   4Сh

- где вначале из Аh (10) вычтем Eh (14), получим – Сh, так как 10 меньше 14, то к десяти прибавим 16 = 26, из которого вычтем (14). Далее из 9 – 4 – 1 (взяли для единиц) = 4.

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



1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

1

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

2

2

4

6

8

A

C

E

10

12

14

16

18

1A

1C

1E

3

3

6

9

C

F

12

15

18

1B

1E

21

24

27

2A

2D

4

4

8

C

10

14

18

1C

20

24

28

2C

30

34

38

3C

5

5

A

F

14

19

1E

23

28

2D

32

37

3C

41

46

4B

6

6

C

12

18

1E

24

2A

30

36

3C

42

48

4E

54

5A

7

7

E

15

1C

23

2A

31

38

3F

46

4D

54

5B

62

69

8

8

10

18

20

28

30

38

40

48

50

58

60

68

70

78

9

9

12

1B

24

2D

36

3F

48

51

5A

63

6C

75

7E

87

A

A

14

1E

28

32

3C

46

50

5A

64

6E

78

82

8C

96

B

B

16

21

2C

37

42

4D

58

63

6E

79

84

8F

9A

A5

C

C

18

24

30

3C

48

54

60

6C

78

84

90

9C

A8

B4

D

D

1A

27

34

41

4E

5B

68

75

82

8F

9C

A9

B6

C3

E

E

1C

2A

38

46

54

62

70

7E

8C

9A

A8

B6

C4

D2

F

F

1E

2D

3C

4B

5A

69

78

87

96

A5

B4

C3

D2

E1

 

Операция умножения довольно просто выполняется при использовании этой таблицы. Например, при умножении чисел 4Аh x Ch сначала выполним операцию умножения для 4h х Сh = 30h и затем Аh х Сh = 78h. Для этого нужно найти числа, находящиеся на пересечении строк и столбцов чисел 4 и С, а затем А и С. Затем нужно сложить 300h и 78h, в результате получим 378h.

Для операции деления нужно найти число в строке, в которой слева находится делитель или близкое к нему число. Например, при делении 378h на Сh, найдем в строке, где слева находится С, максимальное число, которое не превышает 37 – это будет 30. Запишем верхнее число, которое находится в этом столбце, это будет 4. 37h – 30h = 7h. Далее найдем в этой же строке число 78 и запишем верхнее значение столбца, где оно находится. Получим А, значит, наше число 4Ah.

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

При просмотре содержимого памяти, необходимо иметь в виду, что представление числа имеет еще одну особенность, при которой в начале области находятся два младших разряда, потом старшие. Тогда при просмотре памяти при помощи программы Debug окажется, что число –4 (или FFFCh) будет представлено в виде: сначала FCh, потом FFh.

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


0h

1h

2h

3h

4h

5h

6h

7h

0000b

0001b

0010b

0011b

0100b

0101b

0110b

0111b

8h

9h

Ah

Bh

Ch

Dh

Eh

Fh

1000b

1001b

1010b

1011b

1100b

1101b

1110b

1111b

 

Если имеется число 5Аh, то вместо 5 поставим значение 0101, взятое из таблицы, а вместо А – 1010, а в конце символ – b, получим 0101 1010b. Аналогично наоборот, если имеется число 1110 0110b, то найдем соответствие первой четверке чисел 1110 – Е, второй 0110 – 6, получим число Е6h.

Задачи.

1. Переведите в шестнадцатеричную систему счисления: а) 123, б) 324 в) 63 г) 14 д) 1024

2. Переведите в десятичную систему счисления: а) 24h б)1Аh, в) 66h г) А5h, д) 77h

3. Выполните операции: а) 23h-1Ah, б) 62h+1Ch в) 11hx3Ah, г) 4Dhx22h д) 23h:5h

4. Переведите числа в двоичную систему счисления: а) 10h б) 44h в) А7h г) 8Сh д) 99h

5. Переведите двоичные числа в шестнадцатеричную систему счисления: а) 0001 1000b, б) 0110 1100b, в) 0111 0111b, г) 1001 1011b д) 0010 0011b

(переход на следующую страницу)

 

О↙О↘О↙О↘О↙О↘О↙О↘О↙О↘О↙О↘О↙О↘О↙О↘О











Информация данного сайта предназначена для бесплатного изучения персонального компьютера. Можно копировать, передавать материалы другим лицам.

Запрещается использовать материалы для получения личной финансовой выгоды, а также размещать на сайтах в интернете.


 
 
 
Яндекс.Метрика


Каталог@MAIL.RU - каталог ресурсов интернет