doubts in data modifiers

  1. unsigned char y=‘152’;
    by printing y , it’s giving only 2 as output .
    please explain it?

  2. also unsigned char y=‘1521542108’;
    in this case its also giving 8
    i.e for any value larger than 127 its printing only the last digit .
    why it’s happening ?
    i have tried a lot of example but i am getting same output.