C语言中1和0代表什么?

Python014

C语言中1和0代表什么?,第1张

逻辑表达式的值应该是一个逻辑量“真”或“假”。C语言编译系统在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”,但在判断一个量是否为真时,以0代表“假”,以非0代表“真”。即将一个非零的数值认作为“真”。

C语言规定1为真(TRUE),0为假(FALSE)。

C语言中0为假,1为真,逻辑与和整数乘法相同,而c语言中的1就是整数,整数除法1/2结果也会是整数,数学中答案是0.5,但是整型的不能保存0,5。因此会直接变成0。后面的计算结果是什么就不重要了。

总的来说,计算机的最小存储单位是字节,一个字节可存储256个数字,真和假却只有两个数字。C语言从C99才有_ Bool这 个布尔类型。

C99之 前一直使用整数类型存储布尔值,那么除去真和假两值以外还至少有254个数字,这些数字不可能是非真非假,那么只能使用一个值代表真或假,其他值代表前面值的相反值。

扩展资料

计算机识别0和1的原理:

计算机中RAM存储正在使用的程序和文件,硬盘则是文件永久储存的地方。硬盘实际上由若干磁盘构成,磁盘上大量的有序的磁性粒子完成,磁性则可以表示0和1。当需要对文件进行读写时,实际上是发出电脉冲信号移动读写头改变磁性粒子的磁性或者是得到磁性粒子的磁性。

计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称宇。字通常分为若干个字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。字的长度用位数来表示。

在计算机的运算器、控制器中,通常都是以字为单位进行传送的。宇出现在不同的地址其含义是不相同。例如,送往控制器去的字是指令,而送往运算器去的字就是一个数。

在计算机中作为一个整体被存取、传送、处理的二进制数字符串叫做一个字或单元,每个字中二进制位数的长度,称为字长。

1

<<

0

是把1

按2进制

左移0位,结果还是

1

,2进制

0000

0001

1

<<

1,

是把1

按2进制

左移1位,结果是2,2进制

0000

0010

-------------------------------------------

enum

{

gtk_accel_visible

=

1

<<

0,

gtk_accel_locked

=

1

<<

1,

gtk_accel_mask

=

0x07

}

等价于:

#define

gtk_accel_visible

(1

<<

0)

#define

gtk_accel_locked

(1

<<

1)

#define

gtk_accel_mask

0x07

--------------------------------------

typedef

enum

{

gtk_accel_visible

...

gtk_accel_locked

...

gtk_accel_mask

...

}

gtkaccelflags

定义变量类型:

gtkaccelflags

该类型变量正确的取值

只有

gtk_accel_visible,gtk_accel_locked,gtk_accel_mask。

其它值是错误的。

--------

顾名思义:

gtkaccelflags

gtk

进入标志

gtk_accel_visible

可见

0000

0001

gtk_accel_locked

锁定

0000

0010

gtk_accel_mask

屏蔽值

0000

0111

----

应用例子:

gtkaccelflags

flag1

flag1

=

。。。;

if

(flag1

==

gtk_accel_visible){

....

}

else

{

.....

}