flag是什么意思-c语言flag的用法

FLAG原本是一个编程指令,常被运用于计算机语言,例如C语言或D语言中,常于用来记载变量的一个参数。后指在游戏或影视出现剧情分歧时做出的影响后续剧情发展的选择,源自于编程术语,英语中的原意是信号或旗帜。下面是本站小编整理的flag是什么意思,欢迎大家阅读!希望对大家有所帮助!

flag是什么意思-c语言flag的用法

简介

标志寄存器(flag),又称程序状态寄存器(它的内容是Program Status Word,PSW)

这是一个存放条件码标志,控制标志和系统标志的寄存器

标志寄存器EFLAGS中的系统标志和IOPL字段用于控制I/O访问、可屏蔽硬件中断、调试、任务切换以及虚拟8086模式

标志寄存器,又称程序状态寄存器(它的'内容是Program Status Word,PSW)

这是一个存放条件码标志,控制标志和系统标志的寄存器

标志寄存器EFLAGS中的系统标志和IOPL字段用于控制I/O访问、可屏蔽硬件中断、调试、任务切换以及虚拟8086模式

结果标志位

进位标志CF

(Carry Flag)

进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。

奇偶标志PF

(Parity Flag)

奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。

辅助进位标志AF

(Auxiliary Carry Flag)

在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:

(1)、在字操作时,发生低字节向高字节进位或借位时;

(2)、在字节操作时,发生低4位向高4位进位或借位时。

零标志ZF

(Zero Flag)

零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。

符号标志SF

(Sign Flag)

符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。运算结果为正数时,SF的值为0,否则其值为1。

溢出标志OF

(Overflow Flag)

运算结果超过当前运算位数所能表示的范围,OF的值被置为1,否则,OF的值被清为0

c语言flag的用法

(冒泡排序里用flag来判断序列是否已经有序)

#include#define N 5void swap(int arr[], int a, int b){ int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp;}void display(int arr[]){ for (int i = 0; i < N; i++) printf("%d ", arr[i]); puts("");}int main(){ int arr[N] = { 5, 4, 3, 2, 1 };// { 1, 2, 3, 4, 5 }; bool flag; //冒泡排序 for (int i = 0; i < N - 1; i++){ flag = false; for (int j = 0; j < N - i - 1; j++){ if (arr[j] > arr[j + 1]){ swap(arr, j, j + 1); flag = true; } } if (flag == false)//表示已为有序,则中断之 break; } display(arr); return 0;}

3 运行结果