30/09/2018, 18:07
Chuyển đổi số tự nhiên thành số ở hệ cơ số bất kỳ trong C++
#include <iostream>
#include <cstring>
using namespace std;
void chuyenDoiCoSo(char s[], int n) {
int coSo = 0, soDu = 0;
cout << "Nhap vao he co so can chuyen: " << endl;
cin >> coSo;
int i = 0;
while (n > 0) {
soDu = n % coSo;
if (soDu < 10) {
s[i] = '0' + soDu;
}
else {
s[i] = 'A' + (soDu - 10);
}
i++;
n = n / coSo;
}
s[i] = ' ';
for (int i = strlen(s) - 1; i >= 0; i--) {
cout << s[i];
}
}
int main(int argc, char const *argv[]) {
int n = 0;
char s[100];
cout << "Nhap vao mot so tu nhien: " << endl;
cin >> n;
chuyenDoiCoSo(s, n);
return 0;
}
Em có 1 chương trình thế này nhưng có 3 chỗ chưa hiểu lắm, mọi người giải thích hộ em với.
Chỗ này ạ:
s[i] = '0' + soDu;
s[i] = 'A' + (soDu - 10);
s[i] = ' ';
Bài liên quan
‘0’ + số nào đó = kí tự của số đó
như ‘0’ + 1 = ‘1’
‘A’ + số 1 nào đó thì mở bảng ASCII lên xem.
Như ‘A’ + 1 = ‘B’
‘\0’ là kí tự kết thúc chuỗi.
Cảm ơn bạn nhé, mình hiểu rồi