zoukankan      html  css  js  c++  java
  • 整数的逆序存储

    现在有一个整数,对其进行逆序存储。

    例如,3                   (0000 0000 0000 0000 0000 0000 0000 0011)2

             3221225472         (1100 0000 0000 0000 0000 0000 0000 0000)2

    /*整数逆序存储*/
    #include <stdio.h>
    unsigned int reverse(unsigned int a){
     unsigned int b=0;
     for(int i=0;i<31;i++)
     {
      if(a & 0x01)
      {
       b = b | 0x01;
      }
      b = b<<1;
      a = a>>1;
      
     }
     return b;
    }
    void digit_to_binary(unsigned int b)
    {
     char ch[32];
     for(int i=0;i<32;i++){
      int t = b%2;
      int j = 31 -i;
      ch[j] = t;
      b /= 2;
     }
     for(int i=0;i<32;i++){
      printf("%d",ch[i]);
     }
    }
    int main()
    {
     unsigned int x,y;
     scanf("%d",&x);
     y = reverse(x); 
     printf("%u\t",x);
     digit_to_binary(x);
     printf("\n");
     printf("%u\t",y);
     digit_to_binary(y);
     printf("\n");
     return 0;
    }

    思路:判断a的二进制数的最后一位是否为1,如果为1,则将b的最低位设置为1,然后向左移,a向右移动。如果最后一位为0,则直接对两个变量进行移动。

    PS:对逆序存储有更好的方法,十进制数的二进制输出有更好的方法请告知,联系QQ:171380979 验证:博客园

  • 相关阅读:
    mysql数据库 表 导入导出
    Java爬虫
    oracle 表空间统计、自动扩展修改
    dba_segements 没有所有的表的信息
    html&css基础框架
    javascript-ajax之json学习笔记
    符合BME风格的弹窗菜单表格文件上传控件
    iframe元素获取
    文件上传与下载
    JSON.parse 函数
  • 原文地址:https://www.cnblogs.com/guotao/p/2791822.html
Copyright © 2011-2022 走看看