Thứ nhất return không phải là một hàm mà một lệnh.
Thứ hai là mình thấy tên hàm là dec2bcd (mình hiểu là chuyển số thập phân sang số nhị phân - tiêu đề câu hỏi thì lại là Cách chuyển mã BCD sang DEC) nhưng những gì bạn đang đề cập có vẻ như là chuyển số thập phân sang số hexa.
Thứ ba là mình thấy 23/10*16+23%10=39.8??? => không đúng. 23/10 là phép chia nguyên cho kết quả = 2 -> 2 * 16 = 32 -> 32 + 23%10 = 32 + 3. => Cách đổi từ dec2bcd này có vẻ không đúng.
Đoạn code sau đây dùng để đổi từ DEC sang BCD:
#include <iostream>
using namespace std;
void dec2bin(int num)
{
int arr[64];
int i = 0, r;
while(num != 0)
{
r = num % 2;
arr[i++] = r;
num /= 2;
}
for(int j = i - 1; j >= 0; j--)
cout << arr[j];
}
int main()
{
int n, arr[64];
cout << "nhap so thap phan can chuyen: ";
cin >> n;
cout << "Ket qua n duoi dang BCD la: 0b";
dec2bin(n);
return 0;
}