Basic Info:
The game rolls some dice and adds your accuracy (Also taking in to account distance, further away targets are harder to hit). You're right with your vague numbers, having +0 accuracy means exactly 50% of your shots will hit (Assuming average luck, of course)
If you can't see the enemy, the game also makes a coinflip. Tails you automatically miss, heads you proceed as normal. This is done before any other accuracy rolls.
Spoilery Info:
The game rolls a 3d6, I'm pretty sure.
Every value on the 3d6 corresponds with another value. Rolling a 9 returns -2, 10 is -1, 11 is 0, 12 is +1...
However, the extreme lows and highs don't follow this pattern. 3 is -30, 4 is -20, 5 is -10. 16 is +10, 17 is +20, 18 is +30.
You add your accuracy to the value you get, and if it isn't negative, you hit.
Even ludicrously inaccurate guns will hit if you roll a 16+, which is a 1 in 36 chance.
Likewise, the most accurate guns will still miss occaisionally, which is why the @ screen never shows an accuracy better than 98%.