논리의 표현 진법과 숫자 표현 2진수와 10진수 문자의 표현

Slides:



Advertisements
Similar presentations
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
Advertisements

사랑과 기쁨으로 연합하는 제 2 회 전교인 한마음 운동회 제 2 회 전교인 한마음 운동회 설명회 대한예수교장로회 자 양 교 회 1.
브러시리스 DC 모터의 기동 토크 향상 및 고속 구동을 위한 이상기동-단상구동 구동법에 관한 연구
3 8051을 위한 C 언어 프로그래밍.
마이크로프로세서설계 - 3 ATmega128 마이크로컨트롤러의 특징 LED 실습 1
SoC 로봇워 참가자 교육.
Shellcode 작성 김영성.
3장. 디지털 회로 Lecture #3.
저항 저항기(Resistance) 전류의 흐름을 억제하는(흐름을 곤란하게 하는) 기능을 가지고 있다
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
최저가낙찰제의 입찰금액 적정성 심사 시 절감사유서 작성·평가 가이드라인 설명회 2008년 7월 22일 (화)
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
10장 주변장치 (PIO) Slide 1 (of 28).
Lecture #7 어셈블리어 (4) 매크로 어셈블리어 시스템프로그래밍.
CPU의 이해 CPU란 무엇인가?
2 AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128.
3장 MPU 내부구조 Slide 1 (of 28).
디지털회로설계_강의안 멀티플렉서와 디멀티플렉서.
명품 JAVA Essential.
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
C언어: 배열 (Arrays).
                                  2장 Gate IC 종류 및 동작특성 부울대수식.
4 기본 논리게이트 IT CookBook, 디지털 논리회로.
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
버퍼 오버플로우 시스템보안 인터넷공학전공 권영락.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
AVR - Chapter 15 황 지 연.
제 2장 컴퓨터의 등장과 발전.
제 2 장 변수와 상수.
14.1 다이오드 14.2 트랜지스터 14.3 특수반도체 소자 집적, 정류, 증폭 회로 14.7 펄스발진 회로
AVR - Chapter 12 황 지 연.
타이머/카운트 정리 정보통신•컴퓨터 공학부 송명규
                                  1장. 디지털 회로의 개요 디지털 회로란? 디지털 IC의 개요.
2007년 1학기 전산학개론 성신여자대학교 컴퓨터정보학부
9. 아두이노를 이용한 FND 제어 - 스마트 폰으로 제어하는 아두이노 -.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
데이터의 표현과 컴퓨터 연산 Prof. Jae Young Choi (최재영 교수)
6-1 중앙 처리 장치의 내부 구조 6-2 명령(instruction) 6-3 주소 지정 방식
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
8051 IO-PORT 정보통신•컴퓨터 공학부 송명규
제 3 장 연산자 (Operators).
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 05. 상수와 기본 자료형.
3-16. 디지털 시계.
4장 - PHP의 표현식과 흐름 제어-.
개∙폐회식 통제구간 주경기장 통제시간 : 14:00~01:00 <11시간>
마이크로소프트 박종호.
Chapter 04. 데이터의 표현과 연산(Ⅱ).
디지털공학 및 실험 디지털 공학: 부울대수를 기반으로 하는 논리적인 회로의 입출력에 대하여 공부하고 이를 응용한 기능을 설계하는 과목. 부울대수: 참, 거짓 두 종류의 입력(출력)데이터와 AND, OR, NOT 등의 연산자사이의 관계를 정의해 놓은 학문분야. 값의 명칭:
전자물리실험 07-발광소자와 수광소자를 이용한 광신호 감지 - DSU 메카트로닉스 융합공학부 - PULSE 4
제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
제5강 처리 장치 2.
체크포인트 가정 내 일어나는 사고에 대해 알아보고 사고예방을 위해 주의한다. | 예방법 장소별 사고 – 방과 거실 1 2 높은 곳 에 물건 두지 않기! 날카로운 모서리는 천으로 씌우기!
Ⅰ. 보안환경.
DEGITAL LOGIC CIRCUIT Term Project – 4 bit ALU.
인코딩.
문자코드, 문자 입출력 한국어 정보의 전산 처리
학교 내 환자 관리 연수 학교 내 환자 및 응급환자 관리계획(도연학사생 포함) 명진고-2077 ( )
성공적인 입사지원서 작성법 제이비커리어 교육수석 소 은 선.
3주차: Control Flow and Others
제 5 장 82C55를 이용한 포트 출력.
제03장 정보의 표현.
C.
printf("Global Korea\n");
연구장비 공동활용 지원사업 신청서작성 매뉴얼(참여기업)
회계 교육자료 재경부.
제 1 강 컴퓨터의 구조.
Presentation transcript:

논리의 표현 진법과 숫자 표현 2진수와 10진수 문자의 표현 논리수학과 표현 논리의 표현 진법과 숫자 표현 2진수와 10진수 문자의 표현 dolicom@naver.com http://blog.naver.com/dolicom

숫자와 문자의 표현 방식 숫자의 표현 ASCII 코드 KS-5601 UNICODE 2진수 보수 체계 – 정수형 Floating Point - 실수형 ASCII 코드 미국의 컴퓨터 문자 표현 ( 1바이트) KS-5601 한국어 지원을 위한 완성형 표준안 (2바이트가 한글자) UNICODE 다국어 지원을 위한 표현(2바이트)

진수 2진수 : 0과 1로 두가지 상태로 표현 8진수 : 0~7로 표현 10진수 : 인간의 대표적 숫자 표현 CPU의 내부의 디지털 회로에 의해 처리 8진수 : 0~7로 표현 10진수 : 인간의 대표적 숫자 표현 16진수 : 4비트를 한 자리로 표현 0~15까지를 0,1,2, … , 9,A,B,C,D,E,F로 표현 기계어 및 C의 숫자 표현에 많이 사용 한다. 어셈블리 1BH, 0FEH등으로 C에서는 0x1b, 0xFE등으로 사용

2진수 한 비트는 디지털 회로에서 0과 1로 표현 여러 비트의 자릿수로 표현 마지막 비트는 2로 나눗 나머지 값이다. 2진수 0 1 1 0 3 2 1 자릿수의 값 2 2 2 2 8 4 2 1 8x0+4x1+2x1+1x0 => 4+2 => 6 마지막 비트는 2로 나눗 나머지 값이다.

10진수 인간이 일상적으로 사용하는 수 마지막 자리는 10으로 나눗 나머지 값이다. 5 0 4 3 3 2 1 자릿수의 값 10 10 10 10 1000 100 10 1 10진수 1000x5+1000x0+100x4+1x3 => 5043 마지막 자리는 10으로 나눗 나머지 값이다. 5043 / 10 => 몫 504, 나머지 3

16진수 2진수 4비트를 16진수 한자리로 표현 마지막 자리는 16으로 나눗 나머지 값이다. A 1010 10 B 1011 11 C 1100 12 D 1101 13 E 1110 14 F 1111 15 16진수 3 0 E A 3 2 1 자릿수의 값 16 16 16 16 4096 256 16 1 10진수 4096x3+256x0+16x14+1x10 => 30352 마지막 자리는 16으로 나눗 나머지 값이다. 30352 / 16 => 몫 1576, 나머지 10 (=A)

2진수의 표현 전자의 디지털 공학은 2진수의 표현을 사용 논리 1과 0은 2진수 상태를 전압으로 표시 초기의 논리는 5V 전압을 기준으로 표현 1 = 5V -> 3.3V 0 = 0V -> 0V 3.3V로 바뀌는 추세 동작 속도 및 전력 감소 효과 전압은 점점 낮아지는 추세이나 디지털 회로를 구성하는 소자의 특성에 따라 한계가 있다. 디지털 회로로 구성되어 칩은 정해진 전압에 의해 구동되며 회로 설계 시 동작 전압을 확인 해야 한다.

논리의 부울대수 AND : 논리 and – 입력 모두 1일때 출력1 OR : 논리 or – 하나라도 1입력이면 1출력 NOT : 논리 not – 입력의 반대 출력 XOR : 논리 XOR – 2입력이 다르면 1출력 AND OR XOR NOT A B Y A B Y A Y A B Y 0 0 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 1 eXclusive OR

논리 기호 기본 논리 A A Y=A.B Y=A.B B B A A Y=A+B Y=A+B B B A Y = A A A =AB+AB B B

전자회로 구현-TTL 74LS00(NAND) Y = A & B = not (A and B) R 100오옴 1 = 4.xV 논리처리 A 논리 처리 A&B 1 = 4.xV 0 = 0.2V 토템폴 출력 B

논리 회로의 선 연결 5V 4.7K Vcc 4.7K

논리의 전자적 표현(개념모델) 5V S1 switch 1 = 5V 입력 0 = 0V 처리 입력 Z = 플로팅 상태 로직 출력부 S1 switch 입력 처리 로직 1 = 5V 0 = 0V Z = 플로팅 상태 (어떤 전압 상태도 아님) 입력 S2 switch 0V GND

로직 구현 논리의 표현

전압과 전류 V = IR 오옴의 법칙 디지털 회로는 표현에서 전압은 고정하고 전류 변화 전류는 회로의 구성에 따라 자동으로 결정 된다. 디지털 회로의 구현은 위의 법칙에 따라 TR, FET등으로 구성 한다.

논리 1 출력 5V 로직내부(칩) 전류 S1 = ON 입력처리 및 스위치제어 입력 1 = 5V S2 = OFF 0V GND

논리 회로에서 전류 1 전류=0 1 1 1 1=4.xV 0=0.2V 5V Vcc ON OFF OFF ON OFF OFF ON 4.7K 전류=0 1 1 1 Vcc 4.7K ON OFF 1=4.xV 전류=출력에따라 ON OFF OFF 0=0.2V ON OFF ON OFF OFF ON OFF ON

논리 회로에서 전류 2 1 1 전류 1=4.xV 0=0.2V 5V 5V Vcc Vcc OFF ON ON OFF OFF ON 4.7K 4.7K 1 1 전류 Vcc Vcc 4.7K 4.7K OFF ON 1=4.xV 전류=출력에따라 OFF ON ON 0=0.2V OFF ON OFF OFF ON OFF ON OFF

논리 0 출력 5V S1 = OFF 입력처리 및 스위치제어 입력 0 = 0V 전류 S2 = ON 0V GND

논리 1 입력 5V 5V 전류 S1 = ON S1 = OFF NOT 동작 입력 예 0 = 0V 전류 S2 = OFF 출력 입력 5V 5V 전류 S1 = ON S1 = OFF NOT 동작 예 입력 0 = 0V 전류 S2 = OFF S2 = ON 0V GND 0V GND

논리 회로의 선 연결 5V 4.7K Vcc 4.7K

논리 0 입력 5V 5V 전류 S1 = OFF S1 = ON NOT 게이트 동작 예 0 = 0V 입력 전류 S2 = ON 0V GND 0V GND

논리 Z – Floating Point 5V S1 = OFF 입력처리 전류 = 0 및 입력 스위치제어 어느 전압 OE 5V Y=A, OE=1 Y=Z, OE=0 A OE S1 = OFF Y=A, OE=1 Y=Z, OE=0 A 입력처리 및 스위치제어 전류 = 0 입력 어느 전압 OE S1 = OFF 0V GND

논리의 전자적 표현- 한 개의 SW 5V 5V 칩 내부 입력 처리 입력 1 = 5V로 유지 S1 switch 0 = 0V Z = 불가능 S1 switch 0V GND

논리 1 – Open Collector 5V 5V 칩 내부 전류 R 저항 4.7K 10K 입력처리 및 입력 스위치제어 S1 = OFF 0V GND

논리 0 – Open Collector 5V 5V 칩 내부 전류1 R 저항 4.7K 10K 입력처리 및 입력 스위치제어 전류2 S1 = ON 0V GND

Open Collector 예 A B Y C

오픈 컬렉터와 토템폴 출력 오픈 컬렉터 -출력쪽에 풀업 저항을 사용 -TTL의 내부에서 보면 TR의 에미터가 내부 풀업이 없는 상태 : IC의 출력핀에 연결 -외부에서 이 에미터(IC의 출력핀)에 전원을 공급 -출력을 다른 전압으로 구동 가능 – (예) 12V로 풀업 가능, 전압은 IC마다 다름 -쓰임새는 wired-or로 사용 (오픈 콜렉터 출력끼리는 서로 직접 연결) 두개의 출력이 하나는 "로우“, 하나는 "하이" 이더라도 쇼트되지 않음 토템폴 출력 -토템풀: 북아메리카 인디언들의 조상의 혼을 기리는 상징물로서 두개 이상의 비슷한 조각상이 하나의 기둥(Pole)에 세겨진것을 말함 -일반적 TTL(7404)의 출력이 TR이 출력핀을 중심으로 상하고 두개 겹쳐진 모양 -출력에 Pull-up 저항이 없이 동작 -절대로 출력을 출력끼리 접속해서는 안됨 : 두개 출력의 논리가 반대일 때, 내부 출력스위칭 TR은 전원에 대해 쇼트와 같이 되어 큰전류로 출력 TR이 파괴

토템폴 출력의 문제 – 출력 끼리 연결 출력을 두 개 묶으면 논리가 반대로 출력되면 과전류가 흐른다. 전류1 전류2 전류 A 5V S1=ON S2=OFF 1 = 5V A Y 전류1 B A Y 전류2 5V S1 = OFF 5V 0 = 0V B S2 = ON 전류

출력 끼리 연결 사용 예 출력을 두 개 묶고 한 출력은 Z으로 설정하고 나머지에서 출력으로 사용 전류1 전류2 CA A Y B 5V S1=OFF S2=OFF Z = open 전류1 B CA CB A Y 전류2 5V 5V S1 = OFF CB 0 = 0V B S2 = ON

출력 끼리 연결 사용 예 - 충돌 출력을 두 개 묶고 한 출력은 Z으로 설정하고 나머지에서 출력으로 사용 전류1 전류2 CA Y 5V 5V S1=ON S2=OFF 1 = 5V 전류1 B CA CB A Y 전류2 5V 5V S1 = OFF CB 0 = 0V B S2 = ON

로직 구현 FET을 사용한 논리 구현

FET(CMOS)을 사용 할 경우 5V p-channel A 논리 처리 1 = 4.xV 0 = 0V B n-channel

FET(CMOS) NOT 게이트(gate) Y = A 5V p-channel 1 = 4.xV 0 = 0V Vin Vout n-channel

CMOS NOT 게이트(gate) A=0V A C X B Y tDa=수nsec 지연 구간 X의 전압과 전류 A C B 입력신호 1 C B 1 1 A=0V 1=4.xV 0 = 0.xV 입력신호 C B 1 tDb

CMOS NOT 게이트(gate) A=5V A C X B Y tDa=수nsec 지연 구간 Y의 전압과 전류 A B C C B 1 5V B 1 1 0 = 0.xV A=5V C C B 1 1=4.xV 입력신호 tDb

TTL과 CMOS 신호 전압

TTL과 CMOS-동작속도와 소비전력

논리 표현 비트와 바이트

CPU의 데이터 처리 단위 Bit : 한 상태를 나타내는 최소의 단위 . Byte :한 문자를 나타내는최소의 단위 ( 8 Bit). Word : 한 단어를 나타내는최소의 단위. (CPU의 비트 수와 연관) 소형CPU : 2 Byte = 16bit 대형CPU : 4 Byte = 32bit 1bit : 어느 한 상태를 나타냄. (1) ON (0) OFF 1byte = 8 Bit : 256가지상태를 나타냄. 0 1 0 1 1 0 0 1

1byte 단위 처리 예 - 8051 8비트 단위로 저장 데이터 버스 A = 0 B . . . . . . FLAG 설정 25 명령어 해석 02 Oprand 버퍼 A = 0 B . . . . . . FLAG 설정 00 02 ALU 8비트 단위로 계산 02

1byte 단위 처리 예 - 메모리 메모리는 1, 8, 16, 32단위로 엑세스 할수 있음 칩을 만들 때 처리 단위는 결정되어 있다. 8단위의 칩 주소 7 6 5 4 3 2 1 0 0000 0001 0002 0003 0004 0005 . . . 7FFF

1byte 단위 메모리 읽기 8비트 단위 칩은 한번 무조건 8 비트 단위로 엑세스 A2 A1 A0 0 0 1 1 2 3 4 5 0 0 1 주소 7 6 5 4 3 2 1 0 1 2 3 4 D7 D6 D5 D4 D3 D2 D1 D0 5 6 7 MUX

1byte 단위 메모리 -바이트단위만 특정 1비트만은 처리가 불가능 A2 A1 A0 0 0 1 1 2 3 4 5 6 7 MUX 0 0 1 주소 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 MUX

1byte 단위 메모리 쓰기 8비트 단위 칩은 한번 무조건 8 비트 단위로 엑세스 정해진 비트 수 단위로만 처리 A2 A1 A0 주소 0 0 1 7 6 5 4 3 2 1 0 1 2 3 저장신호 발생 4 5 6 7

메모리의 필요한 신호선-SRAM 8x8bit=64bit 메모리 Vcc GND Vcc GND 전원 D7 A2 D6 A1 D5 CS D1 RD/WR D0 Vcc GND Vcc GND 전원

숫자와 논리 계산 숫자의 표현

숫자의 표현과 프로그램 정수는 8비트 단위의 계산을 한다. C int는 몇 개의 레지스터를 묶어 16비트로 표현 한다. 레지스터 사용 방식은 컴파일러마다 틀림 숫자의 계산은 레지스터 값이 ALU 통해 계산 한다. 실수형 자료(Floating Point) 32비트를 처리를 위해 2바이트의 변수를 사용한다. 내부적으로 실수 계산을 불가능 하기 때문에 별도의 함수로 처리

C에서의 숫자 표현 C에서 2,10,16진수는 개발자의 표현에 의해 컴파일러가 2진수로 변환하여 사용 한다. int cnt16; char cnt8; cnt8 = 0xFE; cnt16 = -2; 0xFE는 컴파일러에 의해 2진수 1111 1110로 표현되어 프로그램 코드에 붙는다. 8051의 예: ; cnt8 = 0xFE; 74 FE MOV A,0FEH => 01110100 11111110 F5 A0 MOV 0A0H,A => 11110101 10100000 결국 위의 프로그램은 01110100 11111110처럼 변형되어 ROM/FLASH에 들어 가서 프로그램이 실행된다.

정수형 표현 체계 I 2진수의 숫자 표현법-각 CPU의 처리 단위에 따라 비트는 다름. 2의 보수 체계를 사용 정수형 계산은 CPU 내의 ALU을 이용 직접 계산 된다.

10진수와 2진수의 변화 – 방법1 원리 마지막 비트는 2로 나눈 나머지다. 2로 나누면 전체 비트가 오른쪽으로 한 비트 shift 된다. 1. 0111 - 마지막 비트(LSB) 1은 2로 나눈 나머지 값이다. 2. 7 / 2 = 3 -> 나머지 1 3. 3은 7을 오른 쪽으로 1비트 쉬프트 한 값이다.

2진수를 10진수로 변환 각 자리는 2의 승수 2진수 0 1 0 0 1 1 0 1 7 2 2 2 2 2 2 2 2 6 5 4 3 2 1 128 64 32 16 8 4 2 1 01001101(2진수) = 64+8+4+1 = 77(10진수)

2로 나누어 나머지 얻기 3 2 7 6 1 --- 1 ( LSB) 1 2 3 2 1 --- 1 2 1 1 ---- 1 2 7 6 1 --- 1 ( LSB) 1 2 3 2 1 --- 1 2 1 1 ---- 1 7 = 111

2로 나누어 나머지 얻기 2 2 5 4 1 --- 1 ( LSB) 1 2 2 0 --- 0 2 1 1 ------1 2 5 4 1 --- 1 ( LSB) 1 2 2 0 --- 0 2 1 1 ------1 5 = 101

2로 나누어 계산 – 표기법 변환 2 1 --- 1 (MSB) 2 3 --- 1 2 7 --- 1 ( LSB) 5 = 101

38 => 100110 0 1 2 1 0 2 2 0 2 4 1 2 9 1 2 19 0 2 38 38 = 100110

보수 1의 보수 : 각 비트 값을 다른 값으로 바꾼것. 2의 보수 : 2의 보수 값에 1을 더한 값. 0010 0110 1101 1001 1의 보수 0000 0001 + 1101 1010 2의 보수

정수의 표현 - 2진수 표현 4비트 8비트 16비트 +7 0111 6 0110 … 3 0011 2 0010 1 0001 0 0000 -1 1111 -2 1110 -3 1101 -4 1100 -5 1011 -8 1000 +127 0111 1111 126 0111 1110 … 3 0000 0011 2 0000 0010 1 0000 0001 0 0000 0000 -1 1111 1111 -2 1111 1110 -3 1111 1101 -4 1111 1100 -5 1111 1011 -128 1000 0000 +32767 0111 1111 1111 1111 32766 0111 1111 1111 1110 … 3 0000 0000 0000 0011 2 0000 0000 0000 0010 1 0000 0000 0000 0001 0 0000 0000 0000 0000 -1 1111 1111 1111 1111 -2 1111 1111 1111 1110 -3 1111 1111 1111 1101 -4 1111 1111 1111 1100 -5 1111 1111 1111 1011 -32767 1000 0000 0000 0001 -32768 1000 0000 0000 0000

4비트 정수 + 8비트 정수 + 정수형 자료의 계산 4+3 = 7 4 0100 + 3 0011 7 0111 4 0100 + 3 0011 7 0111 8비트 정수 + 4 0000 0100 + 3 0000 0011 7 0000 0111

4비트 정수 연산 원리 (뺄셈) 정수형 자료의 계산 뺄셈 (예) 5-3 = 2 연산 순서 1. -3 값의 2의 보수를 구한다. +7 0111 6 0110 5 0101 4 0100 3 0011 2 0010 1 0001 0 0000 -1 1111 -2 1110 -3 1101 -4 1100 -5 1011 -6 1010 -7 1001 -8 1000 (예) 5-3 = 2 연산 순서 1. -3 값의 2의 보수를 구한다. +3 : 0011 1의 보수 : 1100 1을 더함 : 0001 1101 => -3 2. 연산 5 + (-3)을 한다. +5 0101 + (-3) 1101 2 0010

8비트 정수 연산 -뺄셈 (예) 5-3 = 2 연산 순서 1. –3은 +3값의 2의 보수를 구한다. +3 : 0000 0011 +127 0111 1111 126 0111 1110 … 3 0000 0011 2 0000 0010 1 0000 0001 0 0000 0000 -1 1111 1111 -2 1111 1110 -3 1111 1101 -4 1111 1100 -5 1111 1011 -128 1000 0000 (예) 5-3 = 2 연산 순서 1. –3은 +3값의 2의 보수를 구한다. +3 : 0000 0011 1의 보수 : 1111 1100 1을 더함 : 0000 0001 1111 1101 => -3 2. 연산 5 + (-3)을 한다. +5 0000 0101 + (-3) 1111 1101 2 10000 0010

16, 32 비트 계산 1. –3은 +3값의 2의 보수를 구한다. 2. 연산 5 + (-3)을 한다. 32 비트 계산 0000 0000 0000 0011 1111 1111 1111 1100 -> 1의 보수 0000 0000 0000 0001 + 1 1111 1111 1111 1101 2의 보수 = -3 2. 연산 5 + (-3)을 한다. 0000 0000 0000 0101 1111 1111 1111 1101 1 0000 0000 0000 0010 => 2 32 비트 계산 0000 0000 0000 0000 0000 0000 0000 0101 1111 1111 1111 1111 1111 1111 1111 1101 1 0000 0000 0000 0000 0000 0000 0000 0010

C언어의 숫자 표현과 CPU내의 표현 C의 변수는 메모리의 내용을 CPU의 레지스터로 가져와 ALU을 이용하여 계산. 정수형 연산 기계어로 값을 계산 정수형 변수 int는 2의 보수 체계를 이용 정수형 변수 unsigned int는 마이너스 부분이 없어 2진수 체계로 계산 정수형 변수 int의 비트는 CPU마다 다름 8비트 CPU : 거의 16비트 정수형 사용 16/32비트CPU : 거의 32비트 정수형 사용

C의 unsigned int 표현 8비트 표현(C에서는 거의 사용안함) 16비트 표현 255 1111 1111 254 1111 1110 253 1111 1101 … 130 1000 0010 129 1000 0001 128 1000 0000 127 0111 1111 126 0111 1110 3 0000 0011 2 0000 0010 1 0000 0001 0 0000 0000 65535 1111 1111 1111 1111 65534 1111 1111 1111 1110 65533 1111 1111 1111 1101 … 130 0000 0000 1000 0010 129 0000 0000 1000 0001 128 0000 0000 1000 0000 127 0000 0000 0111 1111 126 0000 0000 0111 1110 3 0000 0000 0000 0011 2 0000 0000 0000 0010 1 0000 0000 0000 0001 0 0000 0000 0000 0000

문자 문자의 표현

문자의 표현 ASCII 코드 KS-5601 초기 컴퓨터 개발이 미국에서 발전. 문자 표현을 정의 하고 표준화 함. 알파벳과 기타 문자를 한 바이트로 정의 컴퓨터가 세계화 되면 다양한 문자 표현 필요 UNICODE로 표현 KS-5601 한글의 문자를 컴퓨터에서 처리 조합형 문자 코드

ASCII 코드와 CPU내의 처리 보통 문자는 여러 문자(string)을 처리 하는 경우가 많음. 메모리에 순차적으로 문자를 배열하여 처리 어셈블러 ASCTBL: DB '0123456789ABCDEF‘ DB 00H C printf(“Hello!\n”);

String의 표현 “홍길동” 홍 : 0xC8AB 길 : 0xB1E6 동 : 0xB5BF “Hello” “104” ‘H’ char *pmsg = “Hello”; printf(“Hello”); Assembly MsgH : DB ‘Hello’ char *pmsg = “홍길동”; printf(“홍길동”); “홍길동” “Hello” ‘H’ ‘e’ ‘l’ ‘l’ ‘o’ 0x00 “홍” “길” “동” 0x00 0x48 0x65 0x6C 0x6C 0x6F 0x00 0xC8 0xAB 0xB1 0x6C 0xB5 0xBF 0x00 홍 : 0xC8AB 길 : 0xB1E6 동 : 0xB5BF “104” ‘1’ ‘0’ ‘4’ 0x00 0x31 0x30 0x34 0x00 0xXX 0xXX

2진수 계산 연습 1. 예 1 char inum1, inum2, ret; void main() { inum1 = 5; ret = inum1+inum2; } 이 때 ret을 계산하는 과정을 2진법으로 바꾸어 계산 하라. 계산 과정을 모두 표시하고 계산값을 10진수의 계산 결과와 같은 지를 생각한다. 2. 예 2 int inum1, inum2, ret; inum1 = 53; inum2 = -6; 위와 같은 과정으로 2진수 계산을 하여 ret값을 구하라. 3. 예 3 정수형 두수를 각자 원하는 값을 설정하여 계산 하라. 5가지 이상을 계산 하라.