반응형

분류 전체보기 430

[논리회로] 패리티 비트(Parity Bit)

패리티 비트란? 정보의 전달 과정에서 오류가 생겼을 때 검사하기 위해 추가한 비트라고 생각하시면 됩니다. 전송하고자 하는 비트의 끝에 1을 더하여 전송하는 방법으로 2가지의 패리티 비트가 존재합니다(홀수 짝수) 짝수 패리티(even parity) : 데이터에서 1의 개수를 짝수 개로 맞춤 홀수 패리티(odd parity): 데이터에서 1의 개수를 홀수 개로 맞춤 이렇게 하면 하나만 바꿔주면 홀수, 짝수 패리티를 맞출 수 있기 때문에 이런 패리티를 사용하는 것입니다. 패리티함수는 전송 과정에서 에러 검사를 위한 추가비트이며 단지 에러 검출만 할 뿐, 여러 비트에 에러가 발생한 경우에는 검출이 안될 수도 있습니다. 데이터 짝수 패리티 홀수 패리티 A 0 1000001 1 1000001 B 0 1000010 ..

[논리회로] 그레이 코드

그레이 코드란? 자료를 표현하는 방식 중 하나이다. I/O A/D 변환기, 주변장치 등에서 숫자를 표현할 때 사용된다. -가중치가 없는 코드이기 대문에 연선에는 부적당하지만, 아날로그 디지털 변환기나 입출력 장치 코드로 주로 쓰이며 연속되는 코드들 간에 하나의 비트만 변화하여 새로운 코드가 된다 위 사진을 보면 알 수 있듯이 2진수의 경우 하나의 비트간에 하나의 비트만 다른 것이 아니지만 그레이 코드는 이웃하는 코드 간에 한 비트만 다릅니다. 2진 코드를 그레이 코드로 변환 방법 1) 2진 코드의 첫 번째 비트는 그대로 사용합니다. 2) 이후 두 번째 비트부터 앞 비트와의 xor값을 사용합니다. ps. xor은 둘 중 하나가 참이거나 거짓이면 참, 비교하는 둘 다 참이거나 거짓일 때 거짓이 나옵니다. 즉..

[C++] 멤버함수 혹은 메서드

클래스라는 것은 관련있는 데이터들을 하나의 단위로 묶어두기 위한 것입니다. 하지만 이것이 전부는 아닌데요. 서로 관련있는 데이터들 뿐만 아니라, 그 데이터와 관련이 깊은 함수들도 함께 묶어둘 수 있습니다. 이렇게 함으로써 코드의 응집도를 높이고 결합도를 낮출 수 있습니다. #include #include #include #include using namespace std; class Term { public: int coef; int expo; int calcTerm(int x) { return coef * pow(x, expo); } void printTerm() { cout

[C++]클래스와 객체

클래스의 등장 배경 전화번호부 프로그램을 만든다고 가정하면 한 사람의 이름과 전화번호는 항상 같이 붙어다녀야 하는 데이터입니다. 이 두 가지 데이터를 서로 별개의 변수에 저장하면 우리가 이름 데이터를 옮길 때마다 전화번호 데이터도 따로 옮겨줘야 합니다. 만약 각 사람에 대한 이름과 전화번호 뿐만 아니라 주소, 이메일 등 여러가지 데이터를 저장한다면 이 불편함은 더 심해질 것입니다. 인덱스 메이커 프로그램에서도 하나의 단어와 그 단어가 등장한 라인 번호들은 항상 같이 붙어다녀야 하는 데이터입니다. 이런 식으로 서로 관련있는 데이터를 하나의 단위로 묶는 것은 편할 것입니다. 이것이 클래스라는 개념이 등장하는 가장 기본적인 이유입니다. 예시코드 class SalesData { public: string isb..

[C++] Inline 함수 , 함수 오버로딩, typedef

inline 함수 inline함수는 함수를 빨리 쓰기 위해서 씁니다. 이 키워드를 함수 앞에 붙이면 컴파일러에게 해당 함수가 호출되는 곳에 함수의 코드를 직접 삽입하도록 지시하기 때문에 오버헤드를 줄이고 실행 시간을 줄여주는데요. 함수 호출을 수행하는 대신에 함수 내용이 호출 지점에 직접 삽입되면서 성능 향상을 가져올 수 있습니다. 짧은 코드로 이루어진 함수나 작은 규모에 함수에는 inline을 사용하는 것을 권장하지만 긴 함수는 성능을 저하할 수 있습니다. inline int min(int x, int y) { return x > y ? y : x; } int main() { cout

[논리회로] 2진수 음수 표현법 부호의 절대치 1의보수, 2의보수

0000(2) = 0 0001(2) = 1 0010(2) = 2 0011(2) = 3 0100(2) = 4 ⋮ 1110(2) = 14 1111(2) = 15 이것이 2진수의 표현법입니다. 하지만 이런 2진수에서큰 문제점이 하나 있다면 바로 음수의 표현법인데요. 음수를 표현하기에 애매합니다. 그래서 음수를 표현할 때에는 총 3가지 방법을 쓰는데요. 바로 부호의 절대치와 1의보수, 2의보수가 있습니다. 부호의 절대치 부호 비트만 양수와 음수를 나타내고 나머지 비트들은 같습니다. 5의 절대치는 다음과 같습니다. 5(10) = 0000 0000 0000 0000 0000 0000 0000 0101(2) 여기에서 -5를 표현하고 싶다면 최상위 비트가 0일때는 양수, 1일때는 음수를 사용합니다. -5(10) = 1..

[논리회로] 진법(2진수, 16진수, 8진수, 10진수)

진법 소개 10진수 2진수 8진수 16진수 0 0000 00 0 1 0001 01 1 2 0010 02 2 3 0011 03 3 4 0100 04 4 5 0101 05 5 6 0110 06 6 7 0111 07 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 이런식으로 각 진법을 바꿔줄 수 있습니다. 8진수는 0~7까지의 8개의 수로 표현을 한 것이며 16진수는 0~9 그리고 A~F까지의 16개의 기호로 표현한 것입니다. 각 진수의 변환 1) 2진수 - 10진수 간 상호 변환 2진수의 각 비트별 가중치를 구하여 모두 더한다. ex) 110010.011 = 1 * 2^5..

[이산수학] 조건문의 진리표 p -> q의 진리표

p q p -> q T T T T F F F T T F F T p -> q의 진리표를 처음부터 완벽히 이해하는 사람은 없을 것입니다. p가 F면 q의 진리값과 상관없이 왜 p -> q는 t일까? 이런 질문을 할 것으로 보이는데요. 논리학에서는 전제가 거짓이면 결론의 값과 상관없이 참이라고 간주합니다. 모든 명제는 참이거나 거짓입니다. p -> q의 진리값도 반드시 참 혹은 거짓이어야 하는데요. 하지만 가정부터 거짓이라면 우리는 결론을 단정지을 수 없습니다. 하지만 이런 경우라도 반드시 진리값은 정해져야 하기 때문에 이를 우리는 T로 하자고 약속을 한 것입니다. 예시 P : 내일 비가 오면 Q : 소풍을 가지 않는다. 이런 조건문이 있습니다. p -> q는 참인 것을 아실 수 있을 것입니다. 그런데 내일 ..

[이산수학] 역, 이 , 대우

논리적 동치 -p와 q가 n개의 명제들 p1,p2....pn으로 구성된 복합명제라고 하자. p1,p2,...pn의 어떤 진리값들이 주어졌을 때, 두 복합 명제 p와 q가 항상 같은 진리값을 가질 경우, p와 q는 논리적 동치라고 한다. p ≡ q or pq 라고 표기한다. 명제의 역, 이, 대우 p -> q에서 조건 p를 가정, 조건 q를 결론이라고 합니다. p와 q를 바꾸면 q -> p가 되는데 이것을 명제의 역이라고 합니다. p -> q를 부정하면 ~p -> ~q가 되는데 이것을 명제의 이라고 합니다. 가정과 결론도 바꾸고 부정도 하면 ~q -> ~p 가 되는데 이것이 바로 명제의 대우입니다. 예시 p : 날씨가 맑아지면 q : 소풍을 간다. 역 ( q -> p) : 소풍을 가면 날씨가 맑아진다. 이..

반응형