fork(1) download
  1. #include <stdio.h>
  2.  
  3. char lower(char c)
  4. {
  5. if ((c >> 5) == 0x2) { // 上位3ビットが010ならば
  6. return c ^ 0x20;
  7. } else {
  8. return c;
  9. }
  10. }
  11.  
  12. char upper(char c)
  13. {
  14. if ((c >> 5) == 0x3) { // 上位3ビットが011ならば
  15. return c ^ 0x20;
  16. } else {
  17. return c;
  18. }
  19. }
  20.  
  21. void printc(char c)
  22. {
  23. int i;
  24.  
  25. for (i = 7; i >= 0; i--) {
  26. printf("%c", '0' + ((c >> i) & 1));
  27. if (i % 4 == 0) {
  28. printf("%c", i ? ' ' : '\n');
  29. }
  30. }
  31. }
  32.  
  33. int main()
  34. {
  35. char c, ret;
  36.  
  37. scanf("%c", &c);
  38. printf("%c:", c);
  39. printc(c);
  40. ret = lower(c);
  41. printf("%c:", ret);
  42. printc(ret);
  43. ret = upper(c);
  44. printf("%c:", ret);
  45. printc(ret);
  46. return 0;
  47. }
  48.  
Success #stdin #stdout 0.02s 1724KB
stdin
q
stdout
q:0111 0001
q:0111 0001
Q:0101 0001