2012-11-16 2 views
0

심볼을 비트로 변환해야 매 2 심볼 = 1 바이트 = 8 비트가됩니다. 예를 들어 사용자 입력이 RR 인 경우 00001100이 결과로 나타납니다. (단지 예)심볼을 비트로 변환 java

+0

질문을 자세히 작성하십시오. – Abubakkar

+4

"기호"는 무엇입니까? 당신은 텍스트 문자를 의미합니까? 그리고 'RR'<-> 00001100'을 매핑하는 것이 합당한 이유는 무엇입니까? – leonbloy

+0

그것은 단지 예일뿐입니다. 네, 모든 2 개의 기호를 16 진수 형식으로 변환해야합니다 –

답변

0

그럼 내가 질문을 이해했다면 해결할 수있는 두 가지 옵션이 있습니다. 쉽거나 어려운 방법입니다.

쉬운 : 모든

  • 첫째, 당신이 사용하는 문자가있는 16 진수 값이 있는지 알고 있어야합니다.
  • 0-9 | 키를 사용하여 ASCII 테이블을 나타내는 정렬 된 맵을 만들 수 있습니다. A-H이며이 값은 이진수를 나타냅니다.

예 :

SortedMap<Character, String> 
lo_binary = new TreeMap<Character, String>(); 
lo_binary.put('0', "0000"); 
lo_binary.put('1', "0001"); 
lo_binary.put('2', "0010"); 
lo_binary.put('3', "0011"); 
lo_binary.put('4', "0100"); 
lo_binary.put('5', "0101"); 
lo_binary.put('6', "0110"); 
lo_binary.put('7', "0111"); 
lo_binary.put('8', "1000"); 
lo_binary.put('9', "1001"); 
lo_binary.put('A', "1010"); 
lo_binary.put('B', "1011"); 
lo_binary.put('C', "1100"); 
lo_binary.put('D', "1101"); 
lo_binary.put('E', "1110"); 
lo_binary.put('F', "1111"); 
  • 두 개의 문자를 읽고 소트 맵에 바이너리 코드를 찾아보십시오.
  • 저장하는 String

    문자열 ls_symbols = "AA"로 결과; 문자열 ls_result = ""; (; LN < ls_symbols.lenght(); LN ++ INT LN = 0) { ls_result + = lo_binary.get (ls_symbols.charAt (LN))에 대한

    ; }

    System.out.println (ls_result); // AA - 하드> 10101010

: 모든

  • 첫째, 당신이 사용하는 문자가있는 16 진수 값이 있는지 알고 있어야합니다.
  • 16 진수가있는 리터럴을 byte []로 변환합니다.
  • 는 = 바이트 []는
  • 결과는 = 1 true와 false입니다 [] 논리 값으로 변환 0

예 :

// 당신이 리터럴에 나타내는 문자 A.이 있습니까 이진 값 (1010)가있다 // 당신이 이야기 때문에

1010 
boolean = (1010 & 1000) == 1000 // (1000 = represents 0x80) 
boolean = true (1); 

1010 >>> 0100 
boolean = (0100 & 1000) == 0000 
boolean = false (0); 

0100 >>> 1000 
boolean = (1000 & 1000) == 1000 
boolean = true (1); 

1000 >>> 0000 
boolean = (0000 & 1000) == 0000 
boolean = false (0); 
2

나는 당신을 이해할 수 없다. RR이 00001100이되어야하는 이유는 무엇입니까? 16 진수 1100은 문자 'C'를 나타냅니다.

+0

예일뿐입니다. 예, 모든 2 개의 기호를 16 진수 형식으로 변환해야합니다. –

0

귀하의 질문은 혼란 부울 값 이진 값을 변경하려면 연산자 >>> 및 &를 사용 O를 수행 f 16 진수로 표시 한 다음 이진수를 표시합니다. 어쨌든, 아마도 도움이 될 것입니다 ... 이것은 입력을 16 진수로 변환합니다. 어쩌면 당신은 당신이 필요로하는 것만 정확하게 해결하는데 사용할 수 있습니다.

import java.math.BigInteger; 
public class MyTest { 

    public static void main(String[] args) { 

     String input = "RR";  
     System.out.println(toHex(input));  

    } 

    public static String toHex(String arg) { 
     return String.format("%x", new BigInteger(1, arg.getBytes())); 
    }  
}