移位实现正负数原码输出
所谓原码就是二进制定点表示法,即最高位为符号位,“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 }
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并获取更多隐藏干货,QQ交流群:816747642 微信公众号:Crystal软件学堂
作者:Crystal软件学堂 bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |