c語言假值
1. c語言中邏輯值真假怎麼表示
有以下方式:
1、自己定義的「仿布爾型」
在標准被支持之前,一般是由開發人員自己模仿定義布爾型,方式有很多種,常見的有下面兩種:
/*第一種方法*/
#defineTRUE1
#defineFALSE0
/*第二種方法*/
enumbool{false,true};
2、使用_Bool
從C99標准開始,可以簡單的使用 _Bool 來定義布爾型變數。_Bool類型長度為1,只能取值范圍為0或1。將任意非零值賦值給_Bool類型,都會先轉換為1,表示真。將零值賦值給_Bool類型,結果為0,表示假。 下面是一個例子程序:
#include<stdio.h>
#include<stdlib.h>
intmain(){
_Boola=1;
_Boolb=2;/*使用非零值,b的值為1*/
_Boolc=0;
_Boold=-1;/*使用非零值,d的值為1*/
printf("a==%d,/n",a);
printf("b==%d,/n",b);
printf("c==%d,/n",c);
printf("d==%d,/n",d);
printf("sizeof(_Bool)==%d/n",sizeof(_Bool));
system("pause");
returnEXIT_SUCCESS;
}
3. 使用stdbool.h
在C++中,通過bool來定義布爾變數,通過true和false對布爾變數進行賦值。C99為了讓我們能夠寫出與C++兼容的代碼,添加了一個頭文件<stdbool.h>。在gcc中,這個頭文件的源碼如下:(注,為了清楚,不重要的注釋部分已經省略):
/*Copyright(C)1998,1999,2000FreeSoftwareFoundation,Inc.
ThisfileispartofGCC.
*/
#ifndef_STDBOOL_H
#define_STDBOOL_H
#ifndef__cplusplus
#definebool_Bool
#definetrue1
#definefalse0
#else/*__cplusplus,應用於C++里,這里不用處理它*/
/*Supporting<stdbool.h>inC++isaGCCextension.*/
#define_Boolbool
#defineboolbool
#definefalsefalse
#definetruetrue
#endif/*__cplusplus*/
/*.*/
#define__bool_true_false_are_defined1
#endif/*stdbool.h*/
可見,stdbool.h中定義了4個宏,bool、true、false、__bool_true_false_are_defined。 其中bool就是 _Bool類型,true和false的值為1和0,__bool_true_false_are_defined的值為1。下面是一個例子程序:
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
/*測試C99新添加的頭文件stdbool.h*/
intmain(){
boolm=true;
booln=false;
printf("m==%d,n==%d/n",m,n);
printf("sizeof(_Bool)==%d/n",sizeof(_Bool));
system("pause");
returnEXIT_SUCCESS;
}
2. C語言中什麼時候0表示真,1表示假
C語言規定1為真(TRUE),0為假(FALSE)。
C語言中0為假,1為真,邏輯與和整數乘法相同,而c語言中的1就是整數,整數除法1/2結果也會是整數,數學中答案是0.5,但是整型的不能保存0,5。因此會直接變成0。後面的計算結果是什麼就不重要了。
總的來說,計算機的最小存儲單位是位元組,一個位元組可存儲256個數字,真和假卻只有兩個數字。C語言從C99才有_ Bool這 個布爾類型。
C99之 前一直使用整數類型存儲布爾值,那麼除去真和假兩值以外還至少有254個數字,這些數字不可能是非真非假,那麼只能使用一個值代表真或假,其他值代表前面值的相反值。
(2)c語言假值擴展閱讀
計算機識別0和1的原理:
計算機中RAM存儲正在使用的程序和文件,硬碟則是文件永久儲存的地方。硬碟實際上由若干磁碟構成,磁碟上大量的有序的磁性粒子完成,磁性則可以表示0和1。當需要對文件進行讀寫時,實際上是發出電脈沖信號移動讀寫頭改變磁性粒子的磁性或者是得到磁性粒子的磁性。
計算機中,一串數碼作為一個整體來處理或運算的,稱為一個計算機字,簡稱宇。字通常分為若干個位元組(每個位元組一般是8位)。在存儲器中,通常每個單元存儲一個字,因此每個字都是可以定址的。字的長度用位數來表示。
在計算機的運算器、控制器中,通常都是以字為單位進行傳送的。宇出現在不同的地址其含義是不相同。例如,送往控制器去的字是指令,而送往運算器去的字就是一個數。
在計算機中作為一個整體被存取、傳送、處理的二進制數字元串叫做一個字或單元,每個字中二進制位數的長度,稱為字長。
3. C語言中如何表示「真」和「假」
|C語言編譯系統來在表示邏輯運算結果源時,以數值1代表「真」,以0代表「假」。
比如:a、b的值分別是0、4,則a||b的值為1,a&&b的值為0。
但在判斷一個量是否為「真」時,以0代表「假」,以非0代表「真」。
比如:a=4,因為a的值為非0,被認作「真」,所以對它進行「非」運算a=0。
4. C語言真假判斷
在C語言中,0值代表假,非0值代表真。
隨著語言的發展,引入了bool類型,內定義在頭文件 stdbool.h中。bool類型有容兩個值,true代表真值,false代表假值。這兩者之間有等價關系,任何能轉換為0值的表達式,其結果也是false,反之也成立產。
非0即為真,在程序設計裡面會省去很多煩瑣的代碼。
比如:
malloc函數,不成功會返回NULL(實際上就是0),成功返回所分配的連續單元的首地址。那麼在判斷malloc()函數是否成功分配了內存,則可以這么寫:
int *p = (int *)malloc(sizeof(int) * 10);
if (p)
TODO...
else
TODO...
(4)c語言假值擴展閱讀
1、對於邏輯與運算,如果第一個操作數被判定為「假」,系統不再判定或求解第二操作數。
2、對於邏輯或運算,如果第一個操作數被判定為「真」,系統不再判定或求解第二操作數。
5. C語言中如何表示「真」和「假」系統如何判斷一個量的「真」和「假」
C語言編譯系統在表示邏輯運算結果時,以數值1代表「真」,以0代表「假」。 比如:a、b的值分別專是0、4,則屬a||b的值為1,a&&b的值為0。
但在判斷一個量是否為「真」時,以0代表「假」,以非0代表「真」。比如:a=4,因為a的值為非0,被認作「真」,所以對它進行「非」運算!a=0 。
其實語句是否執行由用戶的代碼(即判斷條件)決定的,而系統只用0和非0進行判斷,當用戶認為此句可執行,系統判斷為「真」,反之亦然 。
比如:while(ch!='#'){語句序列;}
ch!='#'為判斷條件
假如ch='A',這可執行大括弧中語句序列(系統判斷為「真」)
當ch='#',不可執行大括弧中的語句序列(系統判斷為「假」)
(5)c語言假值擴展閱讀:
在c語言中,任何等於零的東西都被認為是假,任何等於非零值的東西都被認為是真,因此,最常見的定義就是假為0,真為1。
在預設情況下,枚舉類型的第一個元素被賦值為O,因此,在上述枚舉定義中,FALSE被賦值為0,TRUE被賦值為1。
6. C語言中如何表示「真」和「假」系統如何判定一個量的「真」和「假...
C語言抄編譯系統在表示邏輯運算結果時,以數值1代表「真」,以0代表「假」
比如:a、b的值分別是0、4,則a||b的值為1,a&&b的值為0.
但在判斷一個量是否為「真」時,以0代表「假」,以非0代表「真」
比如:a=4,因為a的值為非0,被認作「真」,所以對它進行「非」運算!a=0
其實語句是否執行由用戶的代碼(即判斷條件)決定的,而系統只用0和非0進行判斷,當用戶認為此句可執行,系統判斷為「真」,反之亦然
比如:while(ch!='#'){語句序列;}
ch!='#'為判斷條件
假如ch='A',這可執行大括弧中語句序列(系統判斷為「真」)
當ch='#',不可執行大括弧中的語句序列(系統判斷為「假」)
如果對你有所幫助,請記得點贊最佳答案,謝謝!
7. C語言中的邏輯值「真」是用什麼表示的,邏輯值「假」是用什麼表示的
C語言中的邏輯值「真」是用T表示(True,真) 值,邏輯值「假」是用 F(版False,假)。
在編程語言中表權示 T(True,真) 值和 F(False,假)值的數據類型叫做布爾類型,在 C 語言中通常用 int 類型來表示,非 0 表示 T,0 表示 F。
布爾邏輯是寫程序的基本功之一,程序中的很多錯誤都可以歸因於邏輯錯誤。以下是一些布爾代數的基本定理,為了簡潔易讀,T 和 F 用 1 和 0 表示,|| 用 + 號表示,x、y、z 的值可能是 0 也可能是 1 。
(7)c語言假值擴展閱讀
常用的邏輯運算符還有 「||」表示「或者」,對於表達式 a||b,「a 或者 b 成立」就為真,也就是說 a 和 b 只要有任意一個成立,a||b 就為真。
比如,a=5,表達式 a>0 || a<-1 的結果為真,因為 5>0,即使 5<-1 不成立,整個表達式也為真。還有「!」表示「反」,對於表達式 !a,a 為真時,!a 為假;a為假時,!a 為真。
8. c語言真假值
真假值
指的是C語言邏輯運算的結果
包括 邏輯非! 邏輯與&& 邏輯或||
但實際上 C語言中沒有真正的布爾類型,真假值就是整型的1和0
真值為1 假值為0
但在實際判斷中,凡是非0的 都按真處理、
9. c語言中的真與假值的含義
3%2
就是
3
除以
2
的余數,為1
c語言中
非0
為真,0為假!
顯然,3%2==0的值
為
假
10. C語言中,如何表示「真」還是「假」系統如何判斷一個量的「真」和「假」
C語言編譯系統在表示邏輯運算結果時,以數值1代表「真」,以0代表「假」。 比如:a、b的值分別是0、4,則a||b的值為1,a&&b的值為0。
但在判斷一個量是否為「真」時,以0代表「假」,以非0代表「真」。比如:a=4,因為a的值為非0,被認作「真」,所以對它進行「非」運算!a=0 。
其實語句是否執行由用戶的代碼(即判斷條件)決定的,而系統只用0和非0進行判斷,當用戶認為此句可執行,系統判斷為「真」,反之亦然 。
比如:while(ch!='#'){語句序列;}
ch!='#'為判斷條件
假如ch='A',這可執行大括弧中語句序列(系統判斷為「真」)
當ch='#',不可執行大括弧中的語句序列(系統判斷為「假」)
(10)c語言假值擴展閱讀
C語言的運算符主要用於構成表達式,同一個符號在不同的表達式中,其作用並不一致。下面按計算的優先順序,分別說明不同作用的表達式。需要特別指出,在C語言標准中,並沒有結合性的說法。
相同優先順序運算符,從左至右依次運算。注意後綴運算優先順序高於前綴。因此++i++應解釋為++(i++)。
而與或非的運算優先順序都不一樣,因此a && b || b && c解釋為(a && b) || (b && c)合理使用優先順序可以極大簡化表達式。
基本表達式(Primary expressions),主要是用於運算符之間,做為運算數。標識,常量,字元串文字量,優先順序提升表達式最優先執行。優先順序提升表達式是指圓括弧包圍的表達式,如「( expression )」