inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

외워서 끝내는 네트워크 핵심이론 - 기초

서브넷 마스크와 CIDR

서브넷 마스크에서 == 연산 질문

해결된 질문

700

콩팥팥죽

작성한 질문수 73

0

비트 연산이 === 보다 빠른지 아닌지 궁금합니다

c언어 공부할때 비트연산이 더 빠른 것으로 기억하는데

아무리 컴퓨터가 좋아져도 네트워크 빠르게 동작하려면 비트연산 사용하는게 좋지 않을까 하는 의문이 들어 질문 드립니다.

네트워크 프로토콜

답변 3

1

콩팥팥죽

답변 감사드립니다.

(* 중요한 이야기는 아닌데 for문 이야기한건 특별한 이유없이 반복문에서 후치연산 쓰면 함수 한번 더 호출하고 변수 하나 더쓰고 그러니까 오버헤드 생겨서 작은 차이라 하더라도 연산이 많이되면 오버헤드 줄일수 잇는 방향으로 해야되는거 아닌가 라는 뜻으로 적었습니다 )

0

널널한 개발자

제가 질문을 정확히 이해하지는 못한 것 같습니다. 음...아무튼 사족을 좀 더 달자면
그런 작은 오버헤드나 불필요한 코드는 컴파일러 최적화 과정에서 상당수 사라집니다. 컴파일러 최적화는 정말 놀라울 정도입니다. 꼭 한 번 공부해보시라고 권합니다. 감사합니다.

1

널널한 개발자

관리적인 관점에서 더 효율적이고 직관적이며 장점이 많기 때문입니다. 그리고 이 정도의 차이는 크게 신경 쓸 정도가 아니어도 될 만큼 H/W 성능이 좋아졌습니다. 즉, 차이가 사실상 없습니다.

그리고 for문의 전치 후치 연산 차이와는 아무런 관련이 없습니다. 참고하시기 바랍니다.

1

널널한 개발자

비트연산이 관계연산자보다 보통 더 빠릅니다. 관계연산자 중 상등연산자(==)는 두 피연산자의 값이 서로 같은지 확인하는데 구체적으로는 뺄셈을 수행해 결과가 0이면 값이 같다고 판단합니다. AND, OR, XOR, NOT으로 설명할 수 있는 비트연산은 뺄셈보다는 구조가 간단합니다. 간단한 정수 뺄셈을 하기 위해서는 2의 보수(1의 보수(비트 NOT연산) + 1(덧셈))를 구한 후 다시 더하는 방식이기 때문에 조금 더 복잡합니다. 물론 이를 한 명령으로 한 번에 수행하겠지만 굳이 따지자면 그렇습니다.

그리고 어떤 32비트 정수가 짝수인지 음수인지 알아보기 위해 보통 2로 나눠 나머지를 구합니다. 그러나 비트연산을 이용하면 한 번에 아주 쉽게 끝낼 수 있습니다. x & 0x00000001의 결과를 확인하면 되니까요.

참고하시기 바랍니다.

제가 이해한 것이 맞을까요?

0

56

0

제가 Socket을 잘 이해한 건지 궁금합니다

0

84

1

Broadcast 학습 중 간단한 궁금증이 생겨 질문드립니다

0

83

1

책 추천 부탁드립니다.

0

121

2

Host범위에 대해서 질문이 있습니다.

0

107

2

택배차 즉 Frame의 생명주기

0

116

2

단편화 관련 질문

0

78

2

네트워크 공부에 추천하실만한 책이 있으신가요?

0

226

1

예전에 있었던 수동 IP 할당 경험에 대한 질문

0

89

2

ttl 관련 질문

0

73

3

SSL OSI 7계층

0

140

2

만약 송신측 + 모든 라우터의 MTU는 동일했지만 수신측에서 MTU가 더 작으면 어떻게 되나요?

0

98

2

라우터에 대해 궁금합니다

0

98

2

네트워크 질문 있습니다.

0

148

2

Broadcast 범위에 대한 질문

0

102

1

응용 과정으로 넘어가기 전에 질문 입니다.

0

162

2

UDP 통신 시 Socket 설정

0

218

2

host 내부 process 통신

0

139

2

스위치에 대한 질문

0

199

2

L3Switch & Router

1

245

3

RESTful API에 대해 질문 드립니다

0

201

2

스위치에 대하여

0

202

2

그림 한 장으로 외워서 끝내는 웹 서비스 구조 기본이론만 재생이 안돼요

1

228

3

DHCP 과정 중 src와 dst가 궁금합니다.

0

303

2