So, I thought it would be interesting to do something different. How about deciphering code? The challenge is to explain a piece of code by giving a minimalist description in English. We’ll practise understanding code with no comments and only the surrounding context as clues.

Here’s the code

int foo(int para)
{
int temp = para << 3;
return temp + temp + temp;
}

Explain what the function is doing in the simplest possible way. Don't just tell me what it's doing line by line. Tell me what it finally does.

Post your answer in a comment. Bonus points if you can give a reason why it was coded that way (yes, it has a rational explanation). I'll post my answer in a few days time.

1. Mark Ingram

It multiplies the input by 24.

e.g.

foo(1) = 24
foo(2) = 48
foo(3) = 72

No idea why it’s written that way?

2. Vincent Tan

Mark, that’s correct. As for the bonus answer, it’s not so much the multiplying by 24 part, but the way the calculation was performed.

I’ll post the answer on Friday (got a post lined up for tomorrow already). Hint: it’s something in the area of game programming and a bit of its history.