2 진수를 파싱하지 않고 2 진수 (2 진수 만)를 빼는 이진 계산기를 만들려고합니다.Java에서 이진 빼기
누구든지 내가 위쪽 숫자에 0을, 낮은 숫자에 하나를 두는 상황에 도움이 될 수 있습니까? 코드를 작성할 수없는 것 같습니다.
for (int i = ss.length()-1; i > -1; i--)
{
if(s.charAt(i)=='0' && ss.charAt(i)=='0') sb.append("0");
else if (s.charAt(i)=='1' && ss.charAt(i)=='0') sb.append("1");
else if (s.charAt(i)=='1' && ss.charAt(i)=='1') sb.append("0");
else
{
sb.append("1");
doit(s,i+1,sb);
}
}
for (int i = s.length() - ss.length(); i >-1; i--)
{
sb.append(s.charAt(i));
}
ArrayList<Character> res = new ArrayList<>();
for (int i = sb.length()-1; i > -1; i--)
{
res.add(sb.charAt(i));
}
System.out.println(res);
}
public static void doit(StringBuilder s, int i, StringBuilder sb)
{
for (int j = i; j > -1; j--)
{
if(s.charAt(j)=='0')
{
s.setCharAt(j, '1');
}
else
{
s.setCharAt(j, '0');
break;
}
}
}
시도한 코드 중 일부를 표시 할 수 있습니까? 그리고 당신은 무엇을 의미합니까? - '2 진수 (2 진수 만)'? 이진수는 기본 2 만 맞습니까? 왜 명시 적 언급인가? –
[무엇을 시도해 봤습니까?] (http://whathaveyoutried.com) –
'파싱하지 않고 '정의 할 수 있습니까? 두 개의 숫자를 빼도록 말할 수는 없지만 읽을 수있는 권한은 부여하지 않습니다. – jlordo