sách gpt4 ai đã đi

Chương trình C++ để chuyển đổi thập phân sang thập lục phân

In lại 作者:行者123 更新时间:2023-11-30 01:40:51 28 4
mua khóa gpt4 Nike

我编写了一个程序,通过对字母使用 switch 命令将十进制字符串转换为十六进制,但是如果我使用 char,该程序无法正常工作!没有 switch 我无法处理 9 以上的数字。我希望你能理解我,因为我的语言不是那么好。

所以这是我的程序

顺便说一句,如果把它放在 số nguyên Còn hơn là char 它工作正常但它变成了 11 Còn hơn là B

#include 
sử dụng không gian tên std;
int chính()
{
int n, i, c=0, t;
char a[50];

cout << "Enter a decmail number :\n";
cin >> n;
t = n;

for (i = 0; t > 0; i++)
{
if (a[i] % 16 > 9)
{
switch(a[i])
{
case 10 : a[i] = 'A'; break;
case 11 : a[i] = 'B'; break;
case 12 : a[i] = 'C'; break;
case 13 : a[i] = 'D'; break;
case 14 : a[i] = 'E'; break;
case 15 : a[i] = 'F'; break;
}
}
khác
{
a[i] = t % 16;
}
t = t / 16;
}
cout << n << " In hexdecmail = ";
for(c = i - 1; c >= 0; c--)
{
cout << a[c];
}
}

1 Câu trả lời

这里的问题是 1 与 '1' 不同。 1 是数字 1,而 '1' 是字符常量。要将 1 转换为“1”,您必须在数字中添加“0”。所以你可以改变线a[i] = t%16; đến a[i] = t%16 + '0';

此外,不要将 if 条件和 switch case 放在 a[i] 上,而是需要将其放在 t%16 上,因为 a[i] 尚未设置。休息它应该工作正常。

编辑:要了解从数字到字符常量的对话是如何工作的,您需要了解字符在内部是如何表示的。

每个字符(如 a-z、A-Z、0-9 和特殊字符)都分配了一个介于 0 和 256 之间的数字。此编号称为字符的 ASCII 值。您可以找到所有 ASCII 值的列表 đây .

'0'的ASCII值为48,'1'的ASCII值为49,'2'为50,依此类推。现在你得到的是数字(你通过执行 t%16 得到)。说它是 3 。要转换为其 ASCII 码 (51),您必须加 48。类似地,0-9 之间的所有数字都可以通过加 48 转换为其 ASCII 值。这是因为数字的 ASCII 值是连续的。

通常很难记住 ASCII 值 48。因此您可以只写“0”,这在内部表示 48。

Tôi hy vọng nó có ích.

关于十进制转十六进制的C++程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42514025/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com