분류 전체보기 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 내부 범용 레지스..