1、 二进制转十进制
int binaryToDecimal(long long bin);
int main() {
printf("二进制转十进制:%dn",binaryToDecimal(0b1010));
}
#pragma 二进制转十进制
int binaryToDecimal(long long bin) {
int index = 1 , sum = 0;
do {
if(bin & 1) sum += index;
index *= 2;
} while (bin >>= 1);
return sum;
}
2、十进制转二进制
long long decimalToBinary(int dec);
int main() {
printf("十进制转二进制:%lldn",decimalToBinary(10));
}
#pragma 十进制转二进制
long long decimalToBinary(int dec) {
int index = 1 , sum = 0;
while (dec) {
if(dec % 2) sum += index;
index *= 10;
dec = dec / 2;
}
return sum;
}
3、二进制字符串转十进制
int strBinaryToDecimal(char str[])
int main() {
printf("二进制字符串转十进制:%dn",strBinaryToDecimal("1010"));
}
#pragma 二进制字符串转十进制
int strBinaryToDecimal(char str[]) {
int index = 1 , sum = 0;
unsigned long top = strlen(str);
while (top) {
sum += (str[top-1] - '0') * index;
index *= 2;
top--;
}
return sum;
}