Hannibal nie był czarny według dzisiejszych standardów. Rzymianie byli białą rasą i odnosili się do ciemnoskórych Afrykanów jako do Etiopczyków. Ojczyzna Hannibala, Kartagina, znajdowała się w północnej Afryce, a mieszkańcy byli przede wszystkim lżejsi. Jednak niektórzy zrzeszyli się z ciemnoskórymi Afrykanami na południu.
Hannibal był kartagińskim, a rasa Kartagińczyków była ludem semickim, pochodzącym ze starożytnego Bliskiego Wschodu. Współcześni Arabowie i Żydzi mają podobny kolor skóry, więc Hannibal bardziej przypominał język arabski niż czarny. Członkowie starożytnego świata bardziej przywiązali się do imperiów, niż do rasy, więc Hannibal został zidentyfikowany przez swoje rodzinne miasto.