如何将十进制字符串转换为二进制字符串?
How to convert from decimal to a binary string?
The goal of this part of the lab is to motivate a right-to-left conversion of decimal numbers into binary form. Thus, you will end up writing a function numToBinary(anInteger) that works as follows:
>>> numToBinary(5)
'101'
我的代码是:
def isOdd (x):
if x%2==1:
return('True')
if x%2==0:
return('False')
def numToBinary(x):
if n==0:
return ''
elif isOdd(x):
return numToBinary(x//2)+'1'
else:
return numToBinary(x//2)+'0'
但是这个returns是从左到右的字符串。谁能帮我找到从左到右表示到从右到左表示的方法?
我是用数组做的。这是我的代码。希望你会得到它,它会帮助你。
int numberArray[100], number, quo, rem, i=0, j;
cout << "Enter positive number : ";
cin >> number;
while(number > 0)
{
quo = number/2; // quo defines the quotient.
//cout << "\n" << quo;
rem = number % 2; // rem defines the reminder.
//cout << rem;
numberArray[i] = rem;
i++;
number = quo;
}
cout << "Binary digits of entered number are : ";
// Below loop is for result of binary numbers, entered by user.
for(j=i-1; j>=0; j--)
{
cout << numberArray[j];
}
谢谢,
阿迪尔
这是Python吗?
我在您的代码中没有发现任何 "left-to-right" 问题。但是,您提供的函数 isOdd
returns 字符串('False'
和 'True'
)。它应该 return 布尔值(即删除单引号)。
def isOdd (x):
if x%2==1:
return(True) # <<< THIS
if x%2==0:
return(False) # <<< AND THIS
此外,您在 numToBinary
中使用了一个名为 n
的变量,该变量未在任何地方定义(显然应该是 x
)
def numToBinary(x):
if x==0: # <<<< THIS!
return ''
elif isOdd(x):
return numToBinary(x//2)+'1'
else:
return numToBinary(x//2)+'0'
此代码应该可以正常工作。
如果您只是想要将数字转换为二进制,您可以使用Python的内部bin
函数。尝试:例如 bin(5)[2:]
。
The goal of this part of the lab is to motivate a right-to-left conversion of decimal numbers into binary form. Thus, you will end up writing a function numToBinary(anInteger) that works as follows:
>>> numToBinary(5) '101'
我的代码是:
def isOdd (x):
if x%2==1:
return('True')
if x%2==0:
return('False')
def numToBinary(x):
if n==0:
return ''
elif isOdd(x):
return numToBinary(x//2)+'1'
else:
return numToBinary(x//2)+'0'
但是这个returns是从左到右的字符串。谁能帮我找到从左到右表示到从右到左表示的方法?
我是用数组做的。这是我的代码。希望你会得到它,它会帮助你。
int numberArray[100], number, quo, rem, i=0, j;
cout << "Enter positive number : ";
cin >> number;
while(number > 0)
{
quo = number/2; // quo defines the quotient.
//cout << "\n" << quo;
rem = number % 2; // rem defines the reminder.
//cout << rem;
numberArray[i] = rem;
i++;
number = quo;
}
cout << "Binary digits of entered number are : ";
// Below loop is for result of binary numbers, entered by user.
for(j=i-1; j>=0; j--)
{
cout << numberArray[j];
}
谢谢, 阿迪尔
这是Python吗?
我在您的代码中没有发现任何 "left-to-right" 问题。但是,您提供的函数 isOdd
returns 字符串('False'
和 'True'
)。它应该 return 布尔值(即删除单引号)。
def isOdd (x):
if x%2==1:
return(True) # <<< THIS
if x%2==0:
return(False) # <<< AND THIS
此外,您在 numToBinary
中使用了一个名为 n
的变量,该变量未在任何地方定义(显然应该是 x
)
def numToBinary(x):
if x==0: # <<<< THIS!
return ''
elif isOdd(x):
return numToBinary(x//2)+'1'
else:
return numToBinary(x//2)+'0'
此代码应该可以正常工作。
如果您只是想要将数字转换为二进制,您可以使用Python的内部bin
函数。尝试:例如 bin(5)[2:]
。