O tipo bool é destinado para armazenar os valores lógicos true ou false, a representação numérica deles é 1 ou 0, respectivamente.

Exemplos:

bool a = true;
bool b = false;
bool c = 1;

A representação internal é um número inteiro de 1 byte de tamanho. Deve-se notar que em expressões lógicas é possível usar outros tipos reais ou inteiros ou expressões desses tipos - o compilador não irá gerar qualquer erro. Neste caso, o valor zero será interpretado como false (falso), e todos os outros valores - como true (verdadeiro).

Exemplos:

int i=5;
double d=-2.5;
if(i) Print("i = ",i," e tem valor true");
else Print("i = ",i," e tem valor false");

if(d) Print("d = ",d," e tem o valor true");
else Print("d = ",d," e tem o valor false");

i=0;
if(i) Print("i = ",i," e tem o valor true");
else Print("i = ",i,"e tem o valor false");

d=0.0;
if(d) Print("d = ",d," e tem o valor true");
else Print("d = ",d," e tem o valor false");

//--- Resultados da execução
// i= 5 e tem o valor true
// d= -2.5 e tem o valor true
// i= 0 e tem o valor false
// d= 0 e tem o valor false