내 int가 제대로 반환되지 않는 이유는 무엇입니까?

크리스토퍼 워트

그래서 저는 상당히 간단한 방법이 있습니다.

byte[] mem;
int pc;

private int d16() {
    return (((int) this.mem[pc++]) | ((int) this.mem[pc++] << 8) & 0x00FFFF);
}

반환하기 전에 값을 인쇄하고 LSB (Little endian 형식)가 0xFF이면 0xffcd예를 들어 얻을 수 있습니다. 그러나 반환 값 (메소드를 호출하는 곳) 후에 반환 값을 인쇄하면 0xffffffcd.. 매우 다른 값을 얻습니다 .

내 부드러운 솔루션은

int a = d16() & 0xFFFF;

하지만 그렇게 할 필요는 없다고 생각합니다.

질문

내 비트 마스크가 반환을 통해 반환 값을 따르지 않는 이유는 무엇입니까?

rgettman

이는 연산자 우선 순위 때문입니다 : &Java 우선 순위 표| 에 따른 것보다 우선 순위가 높습니다 . 모든 괄호에도 불구하고 두 개의 OR ( |) 피연산자 주위에 괄호가 없습니다 . 이것은 이것이 먼저 발생 함을 의미합니다.

((int) this.mem[pc++] << 8) & 0x00FFFF

그런 다음 그 값은 첫 번째 값인 ((int) this.mem[pc++]). 이러한 값이로 캐스트 되면 비트 마스크가 적용된 int 여기에서 부호 확장이 발생할 가능성이 있습니다. 이것은 반환 값을 설명 할 수 있습니다 .0xffffffcd

|OR이 먼저 발생하도록 피연산자 주위에 괄호를 넣어야합니다. 그런 다음 이후에 비트 마스크가있는 AND가 발생합니다.

//       v                                                      v
return ( ( ((int) this.mem[pc++]) | ((int) this.mem[pc++] << 8) ) & 0x00FFFF);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

내 json이 제대로 반환되지 않는 이유는 무엇입니까?

분류에서Dev

내 div가 배경 이미지와 제대로 정렬되지 않는 이유는 무엇입니까?

분류에서Dev

내 코드가 제대로로드되지 않는 이유는 무엇입니까?

분류에서Dev

내가 정의한 역기능이 제대로 실행되지 않는 이유는 무엇입니까?

분류에서Dev

중첩 된 내비게이션 바가 제대로 드롭되지 않는 이유는 무엇입니까?

분류에서Dev

이 방정식이 내가 예상 한대로 반복되지 않는 이유는 무엇입니까?

분류에서Dev

이 방정식이 내가 예상 한대로 반복되지 않는 이유는 무엇입니까?

분류에서Dev

내 JavaScript가 내 HTML로 인쇄되지 않는 이유는 무엇입니까?

분류에서Dev

내 jQuery toggleClass가 내 C # repeater에서 제대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 Google지도 이벤트 리스너가 제대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내가 작성한 정규식이 제대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 불화 봇이 역할을 제대로 추가하지 않는 이유는 무엇입니까?

분류에서Dev

내 불화 봇이 역할을 제대로 추가하지 않는 이유는 무엇입니까?

분류에서Dev

내 예제에서이 일반 함수가 지원되지 않는 이유는 무엇입니까?

분류에서Dev

내 WinJS 제스처가 실행되지 않는 이유는 무엇입니까?

분류에서Dev

내 testflight 베타가 초대되지 않는 이유는 무엇입니까?

분류에서Dev

내 레코드가 실행되는 순서대로 삽입되지 않는 이유는 무엇입니까?

분류에서Dev

내 UIView가로드되지 않는 이유는 무엇입니까?

분류에서Dev

내 로컬 서버가 해결되지 않는 이유는 무엇입니까?

분류에서Dev

내 Angular 상태가로드되지 않는 이유는 무엇입니까?

분류에서Dev

내 Jekyll Liquid "join"태그가 제대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내부 루프가 제대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 코드의 fprintf () 함수가 제대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 CSS 미디어 쿼리가 제대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 9 패치가 제대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 스크립트가 제대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

Heroku CLI가 내 자격 증명을 제대로 전달하지 않는 이유는 무엇입니까?

분류에서Dev

내 Python 설치가 제대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 Matlab 코드가 제대로 작동하지 않는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    내 json이 제대로 반환되지 않는 이유는 무엇입니까?

  2. 2

    내 div가 배경 이미지와 제대로 정렬되지 않는 이유는 무엇입니까?

  3. 3

    내 코드가 제대로로드되지 않는 이유는 무엇입니까?

  4. 4

    내가 정의한 역기능이 제대로 실행되지 않는 이유는 무엇입니까?

  5. 5

    중첩 된 내비게이션 바가 제대로 드롭되지 않는 이유는 무엇입니까?

  6. 6

    이 방정식이 내가 예상 한대로 반복되지 않는 이유는 무엇입니까?

  7. 7

    이 방정식이 내가 예상 한대로 반복되지 않는 이유는 무엇입니까?

  8. 8

    내 JavaScript가 내 HTML로 인쇄되지 않는 이유는 무엇입니까?

  9. 9

    내 jQuery toggleClass가 내 C # repeater에서 제대로 작동하지 않는 이유는 무엇입니까?

  10. 10

    내 Google지도 이벤트 리스너가 제대로 작동하지 않는 이유는 무엇입니까?

  11. 11

    내가 작성한 정규식이 제대로 작동하지 않는 이유는 무엇입니까?

  12. 12

    내 불화 봇이 역할을 제대로 추가하지 않는 이유는 무엇입니까?

  13. 13

    내 불화 봇이 역할을 제대로 추가하지 않는 이유는 무엇입니까?

  14. 14

    내 예제에서이 일반 함수가 지원되지 않는 이유는 무엇입니까?

  15. 15

    내 WinJS 제스처가 실행되지 않는 이유는 무엇입니까?

  16. 16

    내 testflight 베타가 초대되지 않는 이유는 무엇입니까?

  17. 17

    내 레코드가 실행되는 순서대로 삽입되지 않는 이유는 무엇입니까?

  18. 18

    내 UIView가로드되지 않는 이유는 무엇입니까?

  19. 19

    내 로컬 서버가 해결되지 않는 이유는 무엇입니까?

  20. 20

    내 Angular 상태가로드되지 않는 이유는 무엇입니까?

  21. 21

    내 Jekyll Liquid "join"태그가 제대로 작동하지 않는 이유는 무엇입니까?

  22. 22

    내부 루프가 제대로 작동하지 않는 이유는 무엇입니까?

  23. 23

    내 코드의 fprintf () 함수가 제대로 작동하지 않는 이유는 무엇입니까?

  24. 24

    내 CSS 미디어 쿼리가 제대로 작동하지 않는 이유는 무엇입니까?

  25. 25

    내 9 패치가 제대로 작동하지 않는 이유는 무엇입니까?

  26. 26

    내 스크립트가 제대로 작동하지 않는 이유는 무엇입니까?

  27. 27

    Heroku CLI가 내 자격 증명을 제대로 전달하지 않는 이유는 무엇입니까?

  28. 28

    내 Python 설치가 제대로 작동하지 않는 이유는 무엇입니까?

  29. 29

    내 Matlab 코드가 제대로 작동하지 않는 이유는 무엇입니까?

뜨겁다태그

보관