In English we say "I am hungry" ... in Spanish "I have hunger" ... in some African languages "Hunger is killing me." Interesting how culture impact how we express our needs.
In portuguese we can use the 3 forms, the 2 firsts means the same thing and is a matter of style. The last one means you are really hungry.
Also the "am" is the "state" version of the verb to be "estar" and not the characteristic version "ser" (yes in pt there are 2 very different verbs that in english is only one)