1.设计一个实现两种不同进制之间的数据转换
input:n进制的字符串 从n->m
#include<iostream>
#include<string>
using namespace std;
int char_to_int(char a){
return '0'<=a && a<='9' ? a-'0' : 10+a-'A';
}
char int_to_char(int a){
return a<=9 ? '0'+a : a-10+'A';
}
int main(){
int output[33];
int n,m,dec=0,num=0;
string input;
cin>>n>>input>>m;
for(int i=0;i<input.length();i++)
dec=dec*n+char_to_int(input[i]);
while(dec!=0)
output[num++]=dec%m,dec/=m;
for(int i=num-1;i>=0;i--)
cout<<int_to_char(output[i]);
cout<<endl;
return 0;
}
2.~A的值和A-1的值是一样的
3.位运算实例
1)将最后一位的右边加上一个1,101->1011 (a<<1)+1;
2)将最后一位变为0,例如1010或者1011处理后都变成1010 (a|1)-1
3)取末5位序列,例如11011010处理后得到11010 a&((1<<5)-1)
4)去掉序列中最右边的1的左边所有数字,例如11011000取到右边的1000 a&(-a)
5)判断奇偶性a&1