728x90
반응형
델파이 2진수 변환(Binaryconversion)
728x90
두번째 인자가 비워져 있거나,
2진수를 표현하는 자릿수에 못 미치면 2진수로 표현될 수 있는
최소 길이로 표현되고 두번째 인자가 2진수 자릿수보다 크면 앞에 0이 붙어 나온다.
function IntToBin(const Value: Cardinal; Digits: Integer = 0): string;
var
i, d: Integer;
begin
for d := 1 to 32 do
if (1 shl d) > Value then break;
if Digits > d then d := Digits;
SetLength(Result, d);
for i := 0 to d-1 do if (1 shl i) and Value = 0 then
Result[d-i] := '0'
else
Result[d-i] := '1';
end;
IntToHex로 만들어진 문자열은 StrToInt('$'+string)으로 돌릴 수 있지만
이건 그렇지 못해서 반대로 하는 함수다.
function BinToInt(const S: string): Cardinal;
var
i, d: Integer;
begin
Result := 0;
d := 0;
for i := length(S) downto 1 do
begin
if S[i] = '1' then
Result := Result + (1 shl d);
inc(d);
end;
end;
728x90
반응형
'Delphi Tip > 문자' 카테고리의 다른 글
한글(2Byte)문자열 깨지지 않게 자르기 (0) | 2024.07.08 |
---|---|
한글 초/중/종성 알아내기 (0) | 2024.02.15 |
델파이 UTF-8 (0) | 2023.11.15 |
Case문으로 문자 비교하기 (0) | 2023.11.08 |
String 을 PAnsiChar 변환 (0) | 2021.10.14 |
댓글