델파이에는 부울, 부울, 바이 테 버, 워드 버울 및 롱 버울에서 네 가지 부울 유형이 정의되어 있습니다. 마지막 3 가지 부울 유형은 다른 언어와의 호환성을 위해 도입되며, 부울 유형이 권장됩니다.
메모리의 양은이 네 가지 유형의 부울 값을 차지합니다.
부울 1 바이트
바이트 버울 1 바이트
WordBool 2 바이트 (1 단어)
Longbool 4 바이트 (2 단어)
바이트 버울의 경우, 세 가지 유형의 실제 상수의 값, WordBool 및 Longbool은 0이 아니며, False는 0이며, 이는 ORD 함수로 확인할 수 있습니다.
부울 유형의 경우, 실제 상수의 값은 1이고 false는 0입니다. 부울 값을 기대하는 맥락에서, 컴파일러는 Bytebool, WordBool 및 Longbool의 0이 아닌 값을 true로 변환합니다.
그러나 부울 표현과 정수/실제는 델파이에서 호환되지 않습니다. 다음 표는 부울과 바이 테 버/wordbool/longbool의 유사점과 차이점을 비교합니다.
부울
false <true
ord (false) = 0
Ord (true) = 1
succ (false) = true
pred (true) = false
booltostr (true) = -1 //이 함수는 매우 비정상적입니다
booltostr (false) = 0
바이트 버, WordBool, Longbool
거짓 <> 참
ord (false) = 0
Ord (true) <> 0
succ (false) = true
pred (false) = true
boolostr 기능은 가장 설명 할 수 없지만 True의 값은 1이지만 True가 -1이라고 말합니다. 기능의 프로토 타입은 다음과 같습니다.
함수 booltostr (b : boolean; useboolstrs : boolean = false) : 문자열;
다음 표는 기능의 변환 규칙입니다.
반환 된 문자열의 buseboolstrsValue
Truefalse'-1 '
True True TrueBoolstrs 배열의 첫 번째 값 (기본값, 'True')
거짓 거짓 '0'
false true falseboolstrs 배열의 첫 번째 값 (기본값, 'false')