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] = '';
*grab popcorn* viết 20:21 ngày 30/09/2018

‘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.

Do Hong Son viết 20:11 ngày 30/09/2018

Cảm ơn bạn nhé, mình hiểu rồi

Bài liên quan
0