【发布时间】:2021-12-26 05:31:39
【问题描述】:
我编写了一个将十进制数字(出生日期)转换为二进制的程序。转换日期和月份工作顺利,但是在转换 year 时会出现 问题,例如 2001 转换为 2521075409 而不是 11111010001。你能告诉我在哪里问题是什么?
{
int i;
long long temp, bin;
i = 1;
bin = 0;
printf("Number %d in binary: \n", year);
while (year > 0) {
temp = year % 2;
year /= 2;
bin += temp * i;
i *= 10;
}
printf("%lld\n\n",bin);
}
【问题讨论】:
-
你超出了
bin的大小。 -
你可以使用
std::bitset<>到二进制转换(reference)。
标签: c++ binary decimal converters