Форум: "Основная";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
ВнизШестнадцатиричная система исчисления Найти похожие ветки
← →
ssmaxx (2004-11-03 12:47) [0]День добрый. Не подскажете, как работать с шестнадцатиричными числами (типа 1А, 2F, и т.д.), а именно: как их просмотреть, если они сидят в переменной типа Integer. И есть ли какие-нибудь специальные процедуры их обработки.
← →
Reindeer Moss Eater © (2004-11-03 12:50) [1]IntToHex.
Только они там не сидят.
Кто ж их посадит?
Это же цифры!
← →
Digitman © (2004-11-03 12:51) [2]
> если они сидят в переменной типа Integer
в переменной типа Integer никакие "шестнадцатиричные числа" не "сидят"... равно как и в переменной любого другого типа.
если же тебе нужно получить содержимое переменной типа Integer в шестнадцатеричноми представлении, то для этого есть ф-ция IntToHex()
← →
Юрий Зотов © (2004-11-03 13:00) [3]> ssmaxx (03.11.04 12:47)
Понимаете, шестнадцатиричных ЧИСЕЛ не существует. И десятичных тоже. И никаких других ЧИСЕЛ тоже не существует.
А существуют шестнадцатиричные, десятичные и прочие СТРОКОВЫЕ представления чисел. То есть, СТРОКИ, а не ЧИСЛА.
Вот у Вас 20 пальцев. Это в DEC. А в HEX их будет 14. А в BIN -
100000100. Все это РАЗНЫЕ строки - но разве количество пальцев у Вас меняется, в какой бы системе его не записали?
← →
TUser © (2004-11-03 13:05) [4]
> Все это РАЗНЫЕ строки - но разве количество пальцев у Вас
> меняется, в какой бы системе его не записали?
А в попугаях-то я гооораздо длиннее (С)
← →
begin...end © (2004-11-03 13:06) [5]
> [3] Юрий Зотов © (03.11.04 13:00)
> А в BIN - 100000100.
Э-э... Разве это 20?
P.S. Не хотел бы я иметь столько пальцев... 8-)
← →
TUser © (2004-11-03 13:08) [6]Столько пальцев необходимо для управления клавиатурой будущего.
← →
ssmaxx (2004-11-03 13:10) [7]Я наверно неправильно выразился. Что мне надо: у меня в текстовом файле есть строка:
1F
Следующей строкой я хочу поставить число, на единицу большее. Как это сделать, я не знаю (т.к. необходимо строковое представление).
← →
Reindeer Moss Eater © (2004-11-03 13:11) [8]Зашибись.
А это кто сказал:
если они сидят в переменной типа Integer.
← →
TUser © (2004-11-03 13:17) [9]val вполне нормально понимает hex-числа
← →
begin...end © (2004-11-03 13:22) [10]
> [7] ssmaxx (03.11.04 13:10)
var
S1, S2: String;
begin
S1 := "$1F";
S2 := IntToHex(StrToIntDef(S1, 0) + 1, 2);
ShowMessage(S2)
end.
← →
TUser © (2004-11-03 13:28) [11]А если хочешь ручками век сделать, тогда так
function EnLarge(S:string):string;
const L:array [0..15] of char =
("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
var i:integer;
c:char;
f:boolean;
begin
if S = "$" then begin
result:="$1";
Exit; // :((((
end;
S:=LowerCase(S);
c:=S[length(S)];
f:=true; i:=0;
while f and (i < length(L)) do
if L[i] <> c then
inc (i)
else f:=false;
if f then
raise Exception.Create("jopa");
if i < length(L)-1 then
S[length(S)]:=L[i+1]
else
S:=EnLarge(copy(S,1,length(S)-1))+"0";
result:=S;
end;
← →
ssmaxx (2004-11-03 13:31) [12]
> Reindeer Moss Eater © (03.11.04 12:50) [1]
> IntToHex.
Спасибо!
← →
ssmaxx (2004-11-03 13:36) [13]
> S2 := IntToHex(StrToIntDef(S1, 0) + 1, 2);
БОЛЬШОЕ СПАСИБО!!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.04 c