제발 도와주세요. 자바 초보입니다.
귀1여운렩
교수님께서 이런 문제를 내주셨습니다.한글을 화면으로부터 읽어 들여 그에 해당하는 유니코드를 10진법과 16진법으로 나타내는 프로그램을 작성하시오. 한글을 읽어 들인 후 이를 16진법으로 바꾸는데 있어 자바에서 제공하는 함수를 사용하지 말고 10진법에서 16진법으로 바꾸는 알고리듬을 사용하여 구현할 것.
힌트라도 좀 주세요. 저는 이 전공을 들으면서 첨으로 접했는데. 배운지 얼마 되지도 않아서 이런 문제를 두고 싸우니 답답하네요. 밤을 꼬박세도 잘 모르겠어요..
-
놀리기
물론 for 문을 돌려서 전체 문자열에 대해서 계산하시면 될테구요.
-
활력초
(int) (\한글\.charAt(0));
이런 식으로 캐릭터로 받아서 int로 캐스팅해서 써도 됐던 거 같네요. 바이트값 계산을 못해서 전에 고생했었는데 저렇게 하는 것이었군요.. ^^ -
탄성
위에 함수는 INT형을 16진수 형 STRING으로 리턴하는 함수 입니다 참고 하시고..
재가 잘 알고 대답해 드리는 지 모르겠네요.. 그래도 궁금하시면 맬보내셔됴..괸찮구요.. -
환찬
public String intToStringHex(int INT)
\t{
\t\tString str=\\;
\t\tString temp2=\\;
\t\tint temp=0;
\t\twhile(INT16)
\t\t{
\t\ttemp=INT%16;
\t\t\tif(temp10)
\t\t\t{
\t\t\t\tif(temp==10)\ttemp2=\A\;
\t\t\t\tif(temp==11)\ttemp2=\B\;
\t\t\t\tif(temp==12)\ttemp -
반월
이렇게 각각 글자당 10진법 숫자 두게 씩 생성이 된다면 . 이젠 그것을 16진법으로 표현 하는게 문제인데요..
java에서는 int 형을 16진법으로 표기 법이 없는 걸로 알고 있습니다.. 제가 아무리 int형에 i=0x0f라고 넣어도
System.out.println(i)하게 되면 15라고 나오져.. 그래서 int형인 a의 값을 String형으로 바꾸어서 출력 해주어야 할것입니다. 물론 String으로 바꾸면서 16진법으로 바꿔줘야 겠죠.. -
개미
자바가 unsign이 되지 않아서 그냥 이대로 System.out해서 표현 하게 되면 -(마이너스)값이 나오면서 실제 코드값과 전혀 다른 값이 나오기때문에 변형을 조금 하여야 합니다. 바이트 값을 int형으로 변형 시킨후 int값중 0보다 작은 값은 a=((a * (-1)) ^ 0xff) +1; 이런식으로 값의 변화를 주어야 실제 byte값이 int로 자연스럽게 들어갑니다.
-
하늘이
한글로 받은것을 스트링에 담고 이것을 byte배열로 담으면 편하게 하실수 있는데요...
byte[] b=\한글\.getBytes(); 이렇게 하면 한글 1 글자당 2byte씩 이 생성이 될거구요..
이를 풀어서 표현 하면 되는데...