Крипто-форум crprogram.16mb.com

Програмування, Delphi, криптографія, криптоаналіз, шифри, вихідні коди, вирішення задач, приклади програм

Часовий пояс: UTC десь + 2 години




Розпочати нову тему Відповісти  [ 7 повідомлень ] 
Автор Повідомлення
 Заголовок повідомлення: HEX, 16-ти річна система числення ( Шістнадцяткова )
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
HEX, 16-ти річна система числення ( Шістнадцяткова система числення ) - система числення з основою 16.

10-ти річна система числення використовує 10 цифр: 0,1,2,3,4,5,6,7,8,9
а 16-річна використовує набір цифр 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.

Наприклад,
2B = 16*2+11 = 43


Повернутися наверх
  
 
 Заголовок повідомлення: Re: HEX, 16-ти річна система числення
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Наприклад,
Код:
#246 =  F6
#247 =  F7
#248 =  F8
#249 =  F9
#250 =  FA
#251 =  FB
#252 =  FC
#253 =  FD
#254 =  FE
#255 =  FF


Повернутися наверх
  
 
 Заголовок повідомлення: Re: HEX, 16-ти річна система числення
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
В Object Pascal (Delphi):

hextoint - перевести число з 16-ти річної системи числення у 10-ти річну.
inttohex - перевести число з 10-ти річної системи числення у 16-ти річну.


Повернутися наверх
  
 
 Заголовок повідомлення: Re: HEX, 16-ти річна система числення
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Наприклад

Код:
const
  HexValues='0123456789ABCDEF';

function HexToInt(Hex: string): integer;
var
  i: integer;
begin
  Result := 0;
  case Length(Hex) of
    0: Result := 0;
    1..8: for i:=1 to Length(Hex) do
      Result := 16*Result + Pos(Upcase(Hex[i]), HexValues)-1;
    else for i:=1 to 8 do
      Result := 16*Result + Pos(Upcase(Hex[i]), HexValues)-1;
  end;
end;


Код:
HexToInt($FF)=255


Код:
inttohex(255,2)=FF


Повернутися наверх
  
 
 Заголовок повідомлення: Re: HEX, 16-ти річна система числення
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 502
Якщо потрібно переводити з НЕХ вигляду тільки двозначні числа, наприклад, "5D","F9" тощо,
функцію можна спростити
Код:
function HexToInt(Hex: string): integer;
begin
Result := 16*(Pos(Upcase(Hex[1]), HexValues)) + Pos(Upcase(Hex[2]), HexValues)-17;
end;


Повернутися наверх
  
 
 Заголовок повідомлення: Re: HEX, 16-ти річна система числення
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 11
Щоб перевести число з HEX системи числення користуємосб таблицею
Код:
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

першу цифру знаходимо у першому рядку та беремо відповідне їй число другого рядка і множимо на 16 та додаємо друге число, знайдене аналогічно:

наприклад,
FA
=>
F=15
*16
+
A=10
=>
15*16+10
=>
250


Повернутися наверх
  
 
 Заголовок повідомлення: Re: HEX, 16-ти річна система числення
СообщениеДодано: 09 гру 2014, 20:48 
Не в мережі

Повідомлень: 18
Додам що це позиційна система і виправте на шістнадцяткова. Якщо ви прочитали десь "16-ти річна" українською, то вкажіть книгу і автора.


Повернутися наверх
  
 
Показати повідомлення за:  Сортувати по:  
Розпочати нову тему Відповісти  [ 7 повідомлень ] 

Часовий пояс: UTC десь + 2 години



cron
Роwеrеd bу рhрВB® аnd Hostinger web hosting