内码对称

题目描述

C++中int型整数内码是一个32位的01序列,该01序列有些是对称的,有些是不对称的。对于给定的一个整数,在一些场合,需要判断其整数内码的对称性。这个事情要做好还非你不行呢。

输入

输入中含有一些整数n(0≤n〈2^32)。

输出

统计其中一共有多少个其内码对称的整数,输出之。

样例输入

0
1
2147483649
2
3

样例输出

2
代码
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
    unsigned int n;
    int sum=0;
    unsigned int num[32];
    int flag,i;
    while(scanf("%u",&n)!=EOF)
    {
        flag=0;
        if(n==0)
        sum++;
        else if(n<32768+65536)
        continue;
        else
        {
            for(i=0;i<32;i++)
            {
                num[i]=n%2;
                n/=2;
            }
            for(i=0;i<16;i++)
            {
                if(num[i]!=num[31-i])
                {
                    flag=1;
                    break;
                 }
            }
            if(flag==0)
            sum++;
        }
    }
    printf("%d\n",sum);
    return 0;
 
posted @   TTTCoder  阅读(879)  评论(0编辑  收藏  举报
编辑推荐:
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
阅读排行:
· DeepSeek V3 两周使用总结
· 回顾我的软件开发经历(1)
· C#使用yield关键字提升迭代性能与效率
· 低成本高可用方案!Linux系统下SQL Server数据库镜像配置全流程详解
· 4. 使用sql查询excel内容
点击右上角即可分享
微信分享提示