十进制->二进制
j=0;
while(n){
bin[j]=n%2;
n=n/2;
二进制->十进制
int res=0;
for(int i=0; i<bin.length; i++){
res = (res*2 + bin[i]);
}
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstring>
void reverse(int *bin, int len) {
int mid = (len - 1) / 2;
for (int i = 0; i <= mid; i++) {
int temp = bin[i];
bin[i] = bin[len - 1 - i];
bin[len - 1 - i] = temp;
}
}
void decimalToBinary(int n, int *bin, int &len) {
int j = 0;
while (n) {
bin[j++] = n % 2;
n = n / 2;
}
len = j;
reverse(bin, len);
}
void decimalToHex(int n, int *bin, int &len) {
int j = 0;
while (n) {
bin[j++] = n % 16;
n = n / 16;
}
len = j;
reverse(bin, len);
}
int binaryToDecimal(int *bin, int len) {
int res = 0;
for (int i = 0; i < len; i++) {
res = (2 * res + bin[i]);
}
return res;
}
int hexToDecimal(int *bin, int len) {
int res = 0;
for (int i = 0; i < len; i++) {
res = (16 * res + bin[i]);
}
return res;
}
int main() {
int n = 57;
int bin[100], len = 0;
memset(bin, 0, sizeof(bin));
//decimalToBinary(n, bin, len);
//printf("%d", binaryToDecimal(bin, len));
decimalToHex(n, bin, len);
printf("%d", hexToDecimal(bin, len));
return 0;
}