순서도란 미리 정의된 기호와 이 기호들을 연결하는 선을 이용하여 알고리즘이 작동하는 과정을 순서대로 표시하여 논리적인 흐름을 보기쉽게 그림으로 도식화한 것이다.
단말(터미널)
프로그램 흐름의 시작과 종료를 나타냄
데이터 입출력
데이터의 입력과 출력을 나타냄
C++ : cin, cout등
JAVA : print, scanner등
python : print, input 등
준비
프로그램의 초깃값 설정
변수의 초깃값, 기억장소 설정
int a = 4;
int b = 3;
////////////////
struct sector_mapping_table
{
public:
unsigned long long LSN; //8바이트 2^64
unsigned long long PSN; //8바이트 2^64
};
struct block_mapping_table
{
public:
unsigned long LBN; //4바이트 2^32
unsigned long PBN; //4바이트 2^32
};
Derived_block* area;
sector_mapping_table* S_table;
block_mapping_table* B_table;
계산 결과가 BCD코드를 벗어날 때, 즉, 9(1001)를 초과하는 경우 계산 결과에 6(0110)을 더해준다.
EX) 69 + 85를 BCD로 바꾸어 연산한 결과는?
10의 자리와 1의 자리 모두가 9를 초과하므로 계산 결과에 0110 0110을 더해주면 된다.
3초과 코드
BCD코드로 표현된 값에 3을 더해 준 값으로 나타내는 코드
자기 보수의 성질을 갖는다.
10진수
BCD 코드
3초과 코드
0
0000
0011
1
0001
0100
2
0010
0101
3
0011
0110
4
0100
0111
5
0101
1000
6
0110
1001
7
0111
1010
8
1000
1011
9
1001
1100
EX) 10진수 13을 3초과 코드로 변환해라
10의 자리 0001 -> 3초과 코드 0100
1의 자리 0011 -> 3초과 코드 0110
따라서 13의 3초과 코드는 0100 0110
자기 보수 코드(Self Complementary Code) 스스로 보수를 만드는 코드란 뜻이다 위의 표에서 3초과 코드의 각 자리의 0을 1로, 1을 0으로 바꿔보자(1의 보수를 취해보자) 10진수 0의 3초과 코드 0과 1을 뒤집어보면 1100이고, 이는 3초과 코드의 9이다. 10진수 1의 3초과 코드 0과 1을 뒤집어보면 1011이고, 이는 3초과 코드의 8이다 이렇게 계속해서 마지막인 10진수 4의 3초과 코드 0과 1을 뒤집어 보면 0111은 3초과 코드의 5이다. 즉, 합이 9가 되는 수끼리 서로 1의 보수관계를 갖는 코드가 자기 보수 코드이다. 이 때문에 오류를 검출할 수 있는 능력이 생긴다. 자기 보수 코드는 3초과 코드, 8421 코드, 2421 코드, 51111 코드 등이 있다.