전체 글 76

1의 보수, 2의 보수

보수를 사용하는 이유컴퓨터 산술 논리 장치(ALU)는 기본적으로 덧셈 연산만 수행하도록 설계 됨즉, 컴퓨터는 덧셈만 수행 가능하므로 음수를 보수로 변환하여 계산하기 위해서 보수를 사용한다.2의 보수를 사용하는 이유1. 표현 범위의 확장 - 같은 비트 수에서 더 넓은 범위의 숫자를 표현할 수 있음 (2의 보수는 0이 하나)2. 0의 유일한 표현 - 1의 보수는 -0, +0 즉, 0이 두 가지로 표현 됨- 2의 보수는 0이 하나로 표현 됨3. 간단한 덧셈/뺄셈 연산- 2의 보수 시스템에서 덧셈과 뺄셈이 더 일관되고 단순한 방식으로 처리 됨 (1의 보수는 순환 연산 필요)4. 오버플로우 감지 용이- 덧셈과 뺄셈에서 오버플로우를 쉽게 감지할 수 있다.- 2의 보수에서 부호비트의 변화를 통해 오버플로우를 쉽게 감..

JPG, PNG, GIF 차이점

손실, 무손실 압축 방식** 무손실 압축 방식원본 데이터 품질을 그대로 유지하면서 파일 크기 줄임압축을 해제하면 원본과 동일한 품질의 이미지를 얻을 수 있다. PNG, GIF가 이 방식을 사용 파일 크기 감소 효과는 손실 압축에 비해 적음 ** 손실 압축 방식일부 데이터를 영구적으로 제거하여 파일 크기를 줄임압축 과정에서 원본의 일부 정보가 손실됨 JPG가 이 방식을 사용높은 압축률로 파일 크기를 크게 줄일 수 있지만, 품질을 다소 저하됨JPG (JPEG)용량이 큰 이미지 파일을 좀 더 압축해 전송할 수 있도록 개발한 파일 형식손실, 무손실 압축 방식 모두 지원 - 일반적으로 손실 압축 방식을 사용 24비트 - 1600만 색상 지원사진, 복잡한 이미지에 적합투명도 지원 안 함 ** 장점손실 압축 방식을 ..

C언어 포인터

포인터메모리 주소를 저장하기 위한 변수포인터 변수를 이용하여 메모리에 직접 접근이 가능하다.** 포인터 변수에는 메모리 시작 번지 주소가 저장됨-> 포인터 타입만 알면 쉽게 추측 가능하기 때문** 포인터 변수의 크기는 64비트 시스템에선 8byte, 32비트 시스템에선 4byte** 포인터를 초기화하지 않고 값을 대입해서는 안 됨-> 아무 메모리 공간에 접근할 경우 문제 발생 가능** 포인터에 0을 대입하는 것은 널 포인터를 의미한다.포인터 변수 선언// 타입 * 변수명;int * pnum;포인터 연산자 ‘&’와 ‘*’피연산자의 주소 값을 반환하는 &연산자& 연산자의 피연산자는 변수여야 함포인터가 가리키는 메모리를 참조하는 *연산자pnum은 포인터 변수를 의미 *pnum은 포인터 변수가 가리키는 변수를 ..

실수 표현법(부동 소수점, 고정 소수점)

고정 소수점이진수에서 소수점 위치를 고정하여 실수를 나타내는 방식 Ex) 32비트 1비트 부호 비트15비트 정수부 비트16비트 소수부 표현## 2.625를 고정 소수점으로 표현한 결과 부호 정수부 실수부0 000 0000 0000 0010 1010 0000 0000 00002.625 => 0000000000000010.1010000000000000장단점장점고정 소수점 방식은 부동 소수점 방식에 비해 표현 방법이 단순하고 속도가 빠름단점표현할 수 있는 범위가 적음정밀도가 낮음-> 표현할 수 있는 범위가 적기 때문부동 소수점소수점의 위치를 이동시킬 수 있는 수 표현 방식부동 소수점 수의 일반적인 형태 N = (-1)^S M * B^ES - 부호, M - 가수 , B -..

Call By Value, Call By Reference Python

파이썬은 모든 것을 객체로 본다.즉, 파이썬은 할당된 값의 종류에 따라 Call By Value가 될 수도, Call By Reference가 될 수 있음.Immutable과 MutableImmtable수정 불가능한 객체int, boolean, float, str, tuple 등등Mutable수정 가능한 객체list, set, dictionary, bytearray, 사용자 정의 클래스Immutable 객체 -> Call By Value## 함수 내에서 인자로 받은 객체의 값을 아무리 변경해도 외부에 선언된 값은 변경되지 않음 def funcA(num) : num += 100a = 100funcA(a)print(a)## 출력 결과## 100 Mutable 객체 -> Call By Reference#..

32비트와 64비트 차이

비트비트란 정보를 표현하는 최소단위를 의미한다.32비트 시스템과 64비트 시스템 차이점1. 데이터 처리 단위 CPU가 한 번에 처리할 수 있는 단위인 워드의 크기가 32비트인 경우 32비트 시스템64비트인 경우 64비트 시스템32비트에 비해 64비트 시스템이 한 번에 더 많은 데이터를 한 번에 처리할 수 있음- 이는 대용량 데이터를 다룰 때 성능 향상으로 이어짐32비트 명령어로 여러 번 실행할 작업을 64비트 명령어로 한 번에 처리하는 경우도 존재- 전체적인 명령어 실행 횟수 감소 2. 메모리 주소 지정32비트 시스템의 경우 2^32(약 4GB)까지의 메모리 주소 지정 가능 64비트 시스템의 경우 2^64(약 18엑사바이트)의 메모리 주소를 이론적으로 지정 가능 3. 레지스터 크기CPU 내부 범용 레지스..