Ich vermute einfach mal das eq vom typ unsigned char ist.
60 ..\\C++\tr.cpp [Warning] converting to `unsigned int' from `double'
In dem Fall führt das ehr zu einem Verlust der Nachkommastellen. Außerdem ist implizites Casting schlechter Stil. Entweder explizit casten oder immer richtigen typ verwenden.Wenn du nun pow verwendest gibt es dir einen double wert zurück (wegen größt möglicher präzision). Da aber unsigned char nur die werte von 0-255 enthaltne kan und doulbe zahlen im bereich von 4 mrd. und mehr aufnehmen kann führt das ganze zu einem enormen datenverlust aufgrund der typkonvertierung. Da sich der compiler denkt das dieser verlusst markant ist warnt er dich.