It depends a lot on the DAC (and also on the representation). You may be able to find a bipolar DAC that accepts a 2's complement input, for example. One common method is to use a unipolar 12-bit DAC and add an offset to the output so 0x000 would be about -10 and 0xFFF would be +10.
However, your example appears to indicate 2's complement or sign+number. Assuming the former (2's complement), and assuming you have a bipolar DAC that outputs some voltage +Vmax to (about) -Vmax for the full range you might have to add an amplifier to change Vmax to 10V.
So in the case of a 12-bit 2's complement number the maximum positive number is 0x7FF and the smallest negative number is 0x800 (possibly sign-extended to 0xF800 if 16-bit representation is used).
So if we set 0x800 = +10V (for 2047) then the output voltage is:
\$V_{OUT} = R'\cdot \frac{10}{2047}\$ where R' is the (integer) decimal equivalent of the 2's complement DAC input R.
So for R' = 2047 (0x800) we get 10.000V, for R' = 0 (0x000) we get 0.000V and for R' = -2048 (0x800) we get -10.005V. Note that there is a slight asymmetry between the maximum positive and negative voltage because of the way 2's complement works.