Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

맨땅에 코딩

자바 비트 연산, 쉬프트 연산자 본문

앱 개발/Java

자바 비트 연산, 쉬프트 연산자

맨땅 2021. 12. 22. 09:13

목차

    반응형

    High byte, low byte 추출

     

    실무 중 열받아서 정리하게 되었습니다

    다른 분들도 보고 도움이 되셨으면 좋겠습니다

     

    [MainActivity.Java]

    byte aa = (byte)0x31
    
    Log.d("Simulators", "high byte는 1 " + Integer.toHexString(aa & 0xF0)); //hihg byte만 추출(0x30)
    Log.d("Simulators", "high byte는 2 " + Integer.toHexString(aa & 0xf0)); //위와 동일(소문자 써도 됌)
    
    Log.d("Simulators", "low byte는 " + Integer.toHexString(aa & 0x0f)); //low byte만 추출(0x01)
    
    Log.d("Simulators", "shift 연산자는 " + Integer.toHexString(aa << 8)); //8bit 앞으로 민거(0x3100)

    위는 안드로이드 스튜디오 oncreate에 작성했습니다.

     

     

    Integer.toHexString

    를 사용한 이유는 Integer.toHexString 없이 찍어보면 48 즉 10진수값이 나오기 때문에 Hex값으로 보기 위해서 사용했습니다

     

    만약 aa<<24 한 31000000에 aa를 더해 31000031을 표현하고 싶다면

     

    byte aa = (byte)0x31;
    int hh;
    int pp;
    
            hh = aa<<24;
            Log.d("Simulators", "hh는 " + Integer.toHexString(hh)); //31000000
            pp = (hh+aa);
            Log.d("Simulators", "계산 결과(pp)는 " + Integer.toHexString(pp)); //31000031

     

    이렇게 해주시면 됩니다

    반응형