【发布时间】:2020-04-11 22:43:13
【问题描述】:
我是 C++ 编程的新手。我被赋予了将十进制编码为十六进制、八进制、二进制转换的任务。我在“binario”函数中遇到了错误,当我输入一个大于 1000 的十进制数时,该函数给我的结果是一个无意义的随机数。
int binario(int n){
int r,val=0, i=1;
while (n>0) {
val=val+(n%2*i);
n=n/2;
i=i*10;
}
return val;
}
【问题讨论】:
-
基数改变了数字的写入方式,它们根本不会改变它的值。将一个整数转换为 if print in base 10 看起来像 base 2 中的原始值的值......真的很奇怪。这真的是你想做的吗?
-
计算机仅将数字存储为二进制。通过以您想要的格式创建数字的字符串表示来处理到输出的转换。将其作为 int 返回没有帮助,因为您不能将其用于计算。你也不能用这种方式表示十六进制数。
标签: c++