‘8’+’0′ = 104?

Разгледайте следния програмен код:

 int x = '8';
 x = x + '0';
 System.out.println(x);

Защо като резултат в конзолата се изписва 104, а не 8?

Подобна задача често се използва за обяснение на това, че символите (букви, цифри, знаци) и командните бутони на клавиатурата, всъщност се кодират в паметта на компютъра чрез двоични числа. Зад всяка буква стои код-число. В случая, зад символа ‘0’ е записано двоично число, чието десетично представяне е числото 48. По същия начин, символът ‘8’ в началото се преобразува към числото 56, защото се записва в целочислен тип променлива – int. Когато извършваме операцията x = x+’0′, се извършва неявно преобразуване на типовете данни – символът ‘0’ се превръща в число и тогава се извършва събирането. Важно е учениците да правят ясна разлика между числа и символи, без значение, че реално се съхраняват по един и същи начин в паметта на компютъра – като двоични числа. Важно е такива задачи да се дават след като децата вече са усвоили основните операции при работа с целочисления тип int. В противен случай може да настъпи нежелано объркване.

Leave a Reply

Your email address will not be published. Required fields are marked *