How does the unary minus operator work on booleans in C++?
===

I am currently converting some OpenCV code from C++ to Java. I can't use JavaCV, as we need the conversion in native Java, not a JNA. At one point in the code, I get the following assignment:

dst[x] = (uchar)(-(kHit >= kForeground));
Where dst is uchar*, kHit and kForeground are ints

I've been unable to find anything about how this works, and Java will not recognize it as an operation. There is an operation on these two variables at another point in the code, and it stores one of two values: 255 or 0. 

The code in question comes from opencv/video/src/bgfg_gaussmix.cpp.

Any help is greatly appreciated. Thanks in advance.