Kids are not stupid - they learn very quickly what is right and wrong. You should never hit a kid, period. Of course, there are going to be times when things dont go your way, or they do something wrong. But you learn other way of discipline. No television, no computer, no desserts, time out corners, stay in your room, no going to you favorite places, etc. Hitting is just plain wrong.
Your kids are smarter than you think. You need to spend time being with them, teaching them, reading with them, instead of just getting angry and lashing out. If you discuss things with kids, they do undertand.
I have a 6 1/2 year old daughter and a 4 year old son. It does work.