Maybe it's wired up with
bits 0-7 of the shift register being dp, a, b, c, d, e, f, g
Then 00010001 would be dp off and d off which is a letter 'A' on the
seven segment display.
adilmalik, is that how it is wired up?
To flip invert the bits you will take what you have and exclusive or with with 0xff.
So in your case
it would be:
shiftOut(dataPin, clockPin, MSBFIRST, 0x11 ^ 0xff); //Send the data
But you may be doing a table lookup. In that case
you can then perform the operation on your variable.
You could even have a flag that determines whether or not to do the inversion.
So you could then
val = val ^ invert;
If invert is 0 then there will be no inversion, if it is 0xff all the bits will be inverted.
Same could be done in line:
shiftOut(dataPin, clockPin, MSBFIRST, 0x11 ^ invert); //Send the data
if invert is 0 no invert, if 0xff, it inverts the bits.