int main(){
int input;
int bin = 0, i = 1;
print("Please input a number");
input = num.parse(stdin.readLineSync());
while(input > 0)
{
bin = bin + (input % 2)*i;
input = input/2;
i = i * 10;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它返回了无数个数字。
小智 5
您只需要处理 double 到 int 的转换: input = (input/2).floor()
请参阅此工作代码:
void main() {
int input;
int bin = 0, i = 1;
input = 5;
while(input > 0)
{
bin = bin + (input % 2)*i;
input = (input/2).floor();
i = i * 10;
}
print(bin);
}
Run Code Online (Sandbox Code Playgroud)
这是上述函数的一个版本:
bin = (dec % 2) + bin;这是大多数人所期望的,但不是原始片段所做的)String dec2bin(int dec) {
var bin = '';
while (dec > 0) {
bin = (dec % 2 == 0 ? '0' : '1') + bin;
dec ~/= 2;
}
return bin;
}
Run Code Online (Sandbox Code Playgroud)
PS:但是,当然,我们可以简单地写:
var bin = num.toRadixString(2);
Run Code Online (Sandbox Code Playgroud)
没有真正需要编写自己的dec2bin函数。
| 归档时间: |
|
| 查看次数: |
1022 次 |
| 最近记录: |