아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
밝은사자290
밝은사자29019.03.16

간단한 논리 연산자 질문입니다.(&&관련 질문입니다)

a = 0x95 이고 b = 0xA9 로 가정해볼게요.

그러면 a && b의 값은 왜 1(True)인가요?


a와b의 값이 둘다 0이 아닐때에 그냥 true라고 하는건가요?


(+ a||b의 값은 어떻게 나타내나요?)


미리 감사합니다.

55글자 더 채워주세요.
답변의 개수
2개의 답변이 있어요!
  • a = 0x95 이고 b = 0xA9 로 가정해볼게요.

    그러면 a && b의 값은 왜 1(True)인가요?

    라고 질문을 하셨죠?

    저 질문 자체가 True and True 라고 질문하신거에요^^

    그래서 당연히 True 나오는게 정답이죠

    보통 And (&&) 논리 연산자는 아래와 같이 사용을 합니다

    A > 3 && A < 5 <== A가 3보다 크고 그리고 A가 5보다 작으면 (참)

    A < 3 && B > A <== A가 3보다 작고 그리고 B가 A보다 크면(참)

    이렇게 사용을 해야 합니다

    근데 (결과) and (결과) 이렇게 논리연산자가 되어버리니 당연히 결과에 0 값이 없는한 전부 참이되어

    참이라는 결과가 나옵니다^^


  • 프로그래밍에서 변수의 값이

    0x00 (0) 이면 false

    그 외 모든 값은 true

    가 됩니다.

    그래서 위 조건문을 실행하면

    a == true , b == true 이므로

    true && true 의 조건이 되어 true 가 됩니다.

    위 조건이 true 가 나오는 조건은 둘다 0 이 아니어야 합니다.

    만약 비트연산이 목적이시면 & 하나만 넣어야 합니다.

    그리고 +a 의 의미가 양수인지 체크하는 것이라면 뭐 간단하게 0<a 이런식으로 해도 되고요. 아니면 입력된 변수의 데이터 타입을 보시고 최상위 비트가 1일 경우 음수를 나타내기 때문에 그것으로 음수 양수 확인하셔도 되고요.