4 solutions

  • 3
    @ 2025-8-20 15:44:57
    a=10(1010) b=9(1001) 
    a&b a和b转成二进制以后,对应位都是1才是1 
    1010
    1001
    1000   a&b=8
    a|b a和b转成二进制以后,对应位只要有一位是1就是1 
    1010
    1001
    1011   a|b=11
    a^b a和b转成二进制以后,对应位只要不相同即是1 
    1010
    1001
    0011   a^b=3
    
    for(int i=30;i>=0;i--)  //对int类型的非符号位从高位到低位进行枚举 
    {
    	if(x>>i&1) //x的二进制的第i位是1 
    	{
    		//
    	}
    }
    
    //枚举n个人的不同选择
    for(int i=0;i<1<<n;i++) //枚举每种选择 
    {
    	for(int j=n-1;j>=0;j--) //第i种选择的第j个人的状态 
    	{
    		if(i>>j&1) //第i种选择第j个人选了 
    		{
    			//
    		}
    		else        //第i种选择第j个人没有选 
    		{
    			//
    		}
    	}	
    }
    
    x>>i;//x右移i位,等价于x*(2^i)
    x<<i;//x左移i位,等价于x/(2^i)
    
    
    bitset<32> a(n); //得到n转成32位补码的内容,可以使用a[i]访问第i位 
    a.count(); //统计a中的1的个数
    
    %d(10进制) %o(8进制),%x(16进制)
    
    scanf("%d",&x); //得到10进制的数x
    printf("%d",x); //输出10进制的数x
    
    10进制转x进制
    while(x)
    {
      s=s+char(x%n+'0');//如果x%10大于等于10,则需要转成对应的字母
      x/=n; 
    } 
    reverse(s.begin(),s.end());
    //s是n转成x进制的结果
    
    x进制转成10进制
      int sum=0;
    reverse(s.begin(),s.end());
    int n=s.size();
    for(int i=0;i<n;i++)
    {
      sum=sum+(s[i]-'0')*pow(x,i);
      //当s[i]-'0' 大于等于10的时候,需要转成对应的数字 
    }
    //sum是x进制的s转成10进制的结果 
    
    
    
    • 1
      @ 2025-12-13 13:35:41
      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
          int x;cin>>x;
          int n=8;
          string s;
          while(x)
          {
              int t=x%n;
              if(t<10) s=s+char(x%n+'0');
              else s=s+char(t-10+'A'); 
              x/=n;
          }
          reverse(s.begin(),s.end());
          cout<<s;
          return 0;
      }
      
      • 0
        @ 2026-8-28 10:17:29
        #include<bits/stdc++.h>
        using namespace std;
        int main()
        {
            int n,x;
            cin>>n>>x;
            string s;
            while(n)
            {
                int g=n%x;
                if(g<10) s=s+char(g+'0');
                else s=s+char('A'+g-10);
                n/=x;
            }
            reverse(c++s.begin(),s.end());
            cout<<s;
            return 0;
        }
        
        
        • -1
          @ 2026-5-2 9:47:03

          #include<bits/stdc++.h> using namespace std; int main() { int x; cin>>x; int n=8; string s; while(x) { int t=x%n; if(t<10) s=s+char(x%n+'0'); else s=s+char(t-10+'A'); x/=n; } reverse(s.begin(),s.end()); cout<<s; return 0; }

          • 1

          Information

          ID
          2851
          Time
          1000ms
          Memory
          64MiB
          Difficulty
          1
          Tags
          # Submissions
          52
          Accepted
          20
          Uploaded By