문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 플래그 (문단 편집) == 프로그래밍 용어 == [[프로그래밍 언어]] 용어로서, 특정 동작을 수행할지 말지 결정하는 (보통 1비트인) 변수를 플래그라고 부른다. [[깃발]]을 신호용으로 (ex 경주, 함선간 신호, 전투시의 신호) 쓰곤 하던 전통에서 따온 용어. 깃발은 '올린다'와 '내린다' 두가지 상태로만 신호를 줄 수 있는 것을 고려하면, ~~깃발 색깔은?~~ ~~변수 이름으로 하자~~ 1비트 정보를 저장하거나 전달하기에 최적인 비유이다.[* 사실은 두 개의 깃발의 위치를 다양하게 조합해 모든 영문 알파벳과 숫자, 간단한 명령 등을 표시할 수 있는 수기신호(flag semaphore)라는 게 있지만.] [[기계어]] 혹은 [[어셈블리어]]에서 처음 사용하기 시작하였으나 [[C언어|C]]나 [[Java|자바]] 등의 고급 프로그래밍 언어에서도 사용하는 용어. 최초의 프로그래밍 언어인 [[기계어]] 혹은 [[어셈블리어]]에서는 기본적으로 순차적으로 명령을 수행하고, jump 명령으로 실행할 명령어의 위치를 바꾸는데, 조건에 따라 jump 를 할지 말지를 결정하는 명령어 집합이 있다. 이 명령어들을 조건 분기 명령어라 하며, 이 명령어 집합이 참조하는 조건이 flag이다. 기본적으로 Z(zero), N(negative), C([[캐리|carry]]), V([[오버플로|overflow]]) 4개의 플래그가 있으며, 이를 기반으로 분기조건을 판단한다. 각 flag는 1bit로 참 (=1) 또는 거짓(=0)의 값을 가지며, 이름의 의미대로 깃발(flag)이 올라가거나 내려간 것으로 표현하기도 한다. 이 flag들을 모아놓은 [[레지스터]]를 flag register라 하며, flag register는 (ALU를 사용하는) 연산의 결과로만 변경된다.[* [[http://ko.wikipedia.org/wiki/%EC%83%81%ED%83%9C_%EB%A0%88%EC%A7%80%EC%8A%A4%ED%84%B0|위키백과: 상태 레지스터]]] 따라서, flag 값이 변경된 후 조건 분기문에 다다르기 전에 연산 명령이 없다면 그 연산 명령의 결과에 따라 분기되어 프로그램이 수행되지만, 그 사이에 다른 연산 명령이 있다면 flag 값이 변할 수 있으므로 결국 조건 분기문에 다다라서는 앞 연산의 결과와 반대 방향으로 분기될 수 있다. 혹은, 더 이상 해당 flag를 참조하는 조건 분기문이 없을 수도 있다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기