Hannibal non era nero secondo gli standard odierni. I romani erano una razza bianca e si riferivano agli africani dalla pelle più scura come etiopi. La patria di Annibale, Cartagine, era situata nell'Africa settentrionale e gli abitanti della zona erano principalmente di pelle più chiara. Tuttavia, alcuni si sono sposati con gli africani dalla pelle più scura a sud.
Annibale era cartaginese, e la razza di Cartaginesi era un popolo semitico che veniva dal Vicino Oriente antico. Gli arabi moderni e gli ebrei condividono un simile colore della pelle, quindi Hannibal probabilmente ha più un aspetto arabo che nero. I membri del mondo antico aderivano più agli imperi di quanto non facessero a correre, così Hannibal viene identificato dalla sua città natale.