所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
eg:
1 #define _CRT_SECURE_NO_WARNINGS
2 #include<stdio.h>
3 void to_two(int num);
4 int main()
5 {
6 int a;
7 scanf("%d", &a);
8 to_two(a);
9
10 return 0;
11 }
12
13 void to_two(int num)
14 {
15 int cir = 1 << 31;
16 for (int i = 1; i <= 32; i++)
17 {
18 if ((num&cir) == 0)//&的优先级低于==
19 {
20 printf("0");
21 }
22 else
23 {
24 printf("1");
25 }
26 num <<= 1;
27 if (i % 4 == 0)
28 {
29 printf(" ");
30 }
31 }
32 }