본문 바로가기

Programming/Codeup.kr기초100제 && 컴퓨터 이야기

[기초-비트단위논리연산] 비트단위로 or 하여 출력하기 && 네트워크 구축 형식

네트워크 구축형식에 여러 종류가 존재한다. 각각 마다 장단점이 있다.

●링형

컴퓨터끼리 원모양으로 연결한 구조이다. 구축비용이 저렴한편이며, 속도가 빠르다. 선로를 따라 도는 토큰이 존재하는데 그 토큰이 자기에게 왔을때 송/수신 하는 토큰 패싱 방식을 사용한다. 어디 한곳이 끊어지거나 토큰을 받은 컴퓨터가 이상이 생기면 토큰 분실상황이 발생해 전체 네트워크가 마비된다. 그래서 안정성이 확보된 곳에 주로 쓰인다.

●메쉬형 (그물형)

컴퓨터끼리 마구잡이로 연결되어있는 구조이다. 모든 컴퓨터가 완전히 서로 1:1로 연결된구조를 '풀 메쉬','full connected'라고 부른다. 인터넷이 이런 구조이며, 어느 한쪽이 끊어지더라도 다른 곳으로 우회해갈 방법이 존재해 안정성이 매우 높다. 그러나 정보의 경로가 정해져있지 않아 이상한곳으로 갈 수 있으니 라우팅 이란 기능으로 정확한 경로를 잡아줘야한다. 풀메쉬의 경우 1:1통신이기에 다른 컴퓨터에 트래픽을 유발하지 않지만 구축비용이 매우 비싸고 중간제어가 거의 불가능하다.

별형(중앙 집중형)

가장 많이 쓰이며 가정에서 쓰는 공유기도 이런 형태이다 제어도 간단하고 구축비용도 저렴한 편이다. 그러나 트래픽이 몰리면 느려지고, 중앙에 하나만 다운되도 서버가 마비된다. 반대로 말하면 중앙만 멀쩡하면 네트워크가 일부 끊어져도 해당 컴퓨터만 문제가 생긴다.

라인형

링형에서 순환이아니라 왕복을 생각하면 된다. 구축비용은 저렴하나 하나만 끊어져도 자신과 엮인 컴퓨터들도 다 같이 끊긴다. 잘 안쓰이는 구조이다.

트리형

근거리 통신망 보다는 광역 통신망에서 사용한다. 이전 포스팅에서 서술한 MAN처럼 대형 통신망이 이 트리형에 가깝기는 하나, 엄밀히는 그물형이다. 별형 이 여러개 묶여 계층구조를 가지면 트리형이된다.

버스형

한 통신망에서 선을 따서 끌어다가 쓰는 방식이다. 멀티탭과 유사한데, 기기가 추가될 때마다 선을 끌어다가 쓰면 되기때문에 구축비용이 저렴해진다. 초기에 이 방식을 사용했다가 사용량이 많아질수록 데이터 충돌이 많이 일어나 속도가 느려져 쓰지 않게 되었다. 더미 허브를 사용할 경우 모양은 별형인데 시스템적으로 버스형구조를 가질 수 있다. 헌데 이 허브라는게 데이터를 요청하고 받을 때 공유기와는 다르게 연결된 모든 디바이스에게 정보를 준다. 디바이스는 자기가 요청한 데이터면 가져가고 아니면 버리는 방식이다. 비효율적이게 보이지만 공유기처럼 어디서 온 패킷이고 어디로 보내야하는지 계산하는 과정이 없어 초고속 패킷이 오가는 곳에 많이 쓰인다. 이 빠르기가 200Gbps, 400Gbps 심지어 1Tbps를 준비할정도로 매우 초고속이다.

문제 설명

입력 된 정수 두 개를 비트단위로 or 연산한 후 그 결과를 정수로 출력해보자.

입력

두 개의 정수가 공백을 두고 입력된다.
(-2147483648 ~ 2147483647)

출력

두 개의 정수가 공백을 두고 입력된다.
(-2147483648 ~ 2147483647)

입력 예시

3 5

출력 예시

7

도움말

비트단위(bitwise) 연산자 |(or, vertical bar, 버티컬바라고 읽는다.)를 붙이면 된다.
** | 은 파이프(pipe)연산자라고도 불리는 경우가 있다.... 궁금하면 찾아볼 것

** 비트단위(bitwise) 연산자는, 
~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor), <<(bitwise left shift), >>(bitwise right shift) 가 있다.

예를 들어 3과 5가 입력되었을 때를 살펴보면
3 : 00000000 00000000 00000000 0000011
5 : 00000000 00000000 00000000 0000101
3|5 : 00000000 00000000 00000000 0000111
이 된다.

이러한 비트단위 연산은 빠른 계산이 필요한

그래픽처리에서도 효과적으로 사용된다.