當前位置:首頁 » 編程軟體 » 編程里not

編程里not

發布時間: 2022-12-22 07:26:56

① 西門子PLC中,取反指令NOT是什麼意思最近在研究PLC。

取反,是Java使用補碼來表示二進制數,在補碼表示中,最高位為符號位,正數的符號位為0,負數為1。

NOT,是匯編指令里邏輯運算符號:NOT表示取反的意思。

補碼的規定如下:

對正數來說,最高位為0,其餘各位代表數值本身(以二進製表示),如+42的補碼為00101010。

對負數而言,把該數絕對值的補碼按位取反,然後對整個數加1,即得該數的補碼。

如-42的補碼為11010110(00101010按位取反11010101+1即11010110)。

用補碼來表示數,0的補碼是單一的,都為00000000。(而在原碼,反碼表示中,+0和-0的表示是不單一的,可參見相應的書籍)。

而且可以用111111表示-1的補(這也是補碼與原碼和反碼的區別)。

(1)編程里not擴展閱讀:

運算方法:

1、正數取反:

先將初始數值轉換成二進制數,再對二進制數的每一位(包括第一位的符號位)進行運算:

即將0變為1、將1變為0。得到的是最終結果的補碼,要轉換為最終結果的原碼則需再次取補碼,就能得到計算結果。

2、負數取反:

先將初始數值轉換成二進制數,再取得二進制數的補碼,之後對補碼的每一位(包括第一位的符號位)進行運算:即將0變為1、將1變為0。

得到的是最終結果的補碼(到達這一步後所得的二進制數為正數,由於正數的原碼、反碼、補碼相同,後面的運算可以忽略。

視此步得到的為最終結果的二進制數),要轉換為最終結果的原碼則需再次取補碼,就能得到計算結果。

常見相關指令:

AND 與運算

or 或運算

XOR 異或運算

NOT 取反

TEST 測試(兩操作數作與運算,僅修改標志位,不回送結果)

SHL 邏輯左移

SAL 算術左移(=SHL)

SHR 邏輯右移( 每位右移, 低位進 CF, 高位補 0)

SAR 算術右移(每位右移, 低位進 CF, 高位不變)

ROL 循環左移

ROR 循環右移

RCL 通過進位的循環左移

RCR 通過進位的循環右移

② plc編程中的|NOT|是什麼意思啊

NOT觸點會改變能流的狀態,能流到達NOT觸點時將停止,沒有能流到達NOT觸點時,該觸點會提供能流。也就是說即使你前面有個常開,只要後面連的是NOT,NOT也會自行得電,使前面常開取反變成常閉。

③ PLC的梯形圖中兩豎杠裡面加一NOT是什麼意思

一般是指令前面的邏輯取非,比如指令前為邏輯1,則為0;反之亦然(如西門子S7-300產品)。當然做自動化還是嚴謹些,還是要看是什麼廠家的產品,以編程手冊為准。

④ 編程中有那些邏輯運算指令

1.算術運算符
Java的算術運算符分為一元運算符和二元運算符。一元運算符只有一個操作數;二元運算符有兩個操作數,運算符位於兩個操作數之間。算術運算符的操作數必須是數值類型。

(1)一元運算符:
一元運算符有:正(+)、負(-)、加1(++)和減1(--)4個。
加1、減1運算符只允許用於數值類型的變數,不允許用於表達式中。加1、減1運算符既可放在變數之前(如++i),也可放在變數之後(如i++),兩者的差別是:如果放在變數之前(如++i),則變數值先加1或減1,然後進行其他相應的操作(主要是賦值操作);如果放在變數之後(如i++),則先進行其他相應的操作,然後再進行變數值加1或減1。
例如:
int i=6,j,k,m,n;
j = +i; //取原值,即j=6
k = -i; //取負值,即k=-6
m = i++; //先m=i,再i=i+1,即m=6,i=7
m = ++i; //先i=i+1,再m=i,即i=7,m=7
n = j--; //先n=j,再j=j-1,即n=6,j=5
n = --j; //先j=j-1,再n=j,即j=5,n=5
在書寫時還要注意的是:一元運算符與其前後的操作數之間不允許有空格,否則編譯時會出錯。

(2)二元運算符
二元運算符有:加(+)、減(-)、乘(*)、除(/)、取余(%)。其中+、-、*、/完成加、減、乘、除四則運算,%是求兩個操作數相除後的余數。

%求余操作舉例:
a % b = a - (a / b) * b
取余運算符既可用於兩個操作數都是整數的情況,也可用於兩個操作數都是浮點數(或一個操作數是浮點數)的情況。當兩個操作數都是浮點數時,例如7.6 % 2.9時,計算結果為:7.6 - 2 * 2.9 = 1.8。
當兩個操作數都是int類型數時,a%b的計算公式為:
a % b = a - (int)(a / b) * b
當兩個操作數都是long類型(或其他整數類型)數時,a%b的計算公式可以類推。

當參加二元運算的兩個操作數的數據類型不同時,所得結果的數據類型與精度較高(或位數更長)的那種數據類型一致。

例如:
7 / 3 //整除,運算結果為2
7.0 / 3 //除法,運算結果為2.33333,即結果與精度較高的類型一致
7 % 3 //取余,運算結果為1
7.0 % 3 //取余,運算結果為1.0
-7 % 3 //取余,運算結果為-1,即運算結果的符號與左操作數相同
7 % -3 //取余,運算結果為1,即運算結果的符號與左操作數相同

2.關系運算符
關系運算符用於比較兩個數值之間的大小,其運算結果為一個邏輯類型的數值。關系運算符有六個:等於(==)、不等於(!=)、大於(>)、大於等於(>=)、小於(<)、小於等於(<=)。

例如:
9 <= 8 //運算結果為false
9.9 >= 8.8 //運算結果為true
'A' < 'a' //運算結果為true,因字元'A'的Unicode編碼值小於字元'a'的
要說明的是,對於大於等於(或小於等於)關系運算符來說,只有大於和等於兩種關系運算都不成立時其結果值才為false,只要有一種(大於或等於)關系運算成立其結果值即為true。例如,對於9 <= 8,9既不小於8也不等於8,所以9 <= 8 的運算結果為false。對於9 >= 9,因9等於9,所以9 >= 9的運算結果為true。

3.邏輯運算符
邏輯運算符要求操作數的數據類型為邏輯型,其運算結果也是邏輯型值。邏輯運算符有:邏輯與(&&)、邏輯或(||)、邏輯非(!)、邏輯異或(^)、邏輯與(&)、邏輯或(|)。
真值表是表示邏輯運算功能的一種直觀方法,其具體方法是把邏輯運算的所有可能值用表格形式全部羅列出來。Java語言邏輯運算符的真值表如下:
邏輯運算符的真值表
A B A&&B A||B !A A^B A&B A|B
false false false false true false false false
true false false true false true false true
false true false true true true false true
true true true true false false true true

前兩列是參與邏輯運算的兩個邏輯變數,共有4種可能,所以表2.5共有4行。後6列分別是6個邏輯運算符在邏輯變數A和邏輯變數B取不同數值時的運算結果值。
要說明的是,兩種邏輯與(&&和&)的運算規則基本相同,兩種邏輯或(||和|)的運算規則也基本相同。其區別是:&和|運算是把邏輯表達式全部計算完,而&&和||運算具有短路計算功能。所謂短路計算,是指系統從左至右進行邏輯表達式的計算,一旦出現計算結果已經確定的情況,則計算過程即被終止。對於&&運算來說,只要運算符左端的值為false,則因無論運算符右端的值為true或為false,其最終結果都為false。所以,系統一旦判斷出&&運算符左端的值為false,則系統將終止其後的計算過程;對於 || 運算來說,只要運算符左端的值為true,則因無論運算符右端的值為true或為false,其最終結果都為true。所以,系統一旦判斷出|| 運算符左端的值為true,則系統將終止其後的計算過程。

例如,有如下邏輯表達式:
(i>=1) && (i<=100)
此時,若i等於0,則系統判斷出i>=1的計算結果為false後,系統馬上得出該邏輯表達式的最終計算結果為false,因此,系統不繼續判斷i<=100的值。短路計算功能可以提高程序的運行速度。
作者建議讀者:在程序設計時使用&&和||運算符,不使用&和|運算符。

用邏輯與(&&)、邏輯或(||)和邏輯非(!)可以組合出各種可能的邏輯表達式。邏輯表達式主要用在 if、while等語句的條件組合上。
例如:
int i = 1;
while(i>=1) && (i<=100) i++; //循環過程
上述程序段的循環過程將i++語句循環執行100次。

4.位運算符
位運算是以二進制位為單位進行的運算,其操作數和運算結果都是整型值。
位運算符共有7個,分別是:位與(&)、位或(|)、位非(~)、位異或(^)、右移(>>)、左移(<<)、0填充的右移(>>>)。
位運算的位與(&)、位或(|)、位非(~)、位異或(^)與邏輯運算的相應操作的真值表完全相同,其差別只是位運算操作的操作數和運算結果都是二進制整數,而邏輯運算相應操作的操作數和運算結果都是邏輯值。

位運算示例
運算符 名稱 示例 說明
& 位與 x&y 把x和y按位求與
| 位或 x|y 把x和y按位求或
~ 位非 ~x 把x按位求非
^ 位異或 x^y 把x和y按位求異或
>> 右移 x>>y 把x的各位右移y位
<< 左移 x<<y 把x的各位左移y位
>>> 右移 x>>>y 把x的各位右移y位,左邊填0

舉例說明:
(1)有如下程序段:
int x = 64; //x等於二進制數的01000000
int y = 70; //y等於二進制數的01000110
int z = x&y //z等於二進制數的01000000
即運算結果為z等於二進制數01000000。位或、位非、位異或的運算方法類同。
(2)右移是將一個二進制數按指定移動的位數向右移位,移掉的被丟棄,左邊移進的部分或者補0(當該數為正時),或者補1(當該數為負時)。這是因為整數在機器內部採用補碼表示法,正數的符號位為0,負數的符號位為1。例如,對於如下程序段:
int x = 70; //x等於二進制數的01000110
int y = 2;
int z = x>>y //z等於二進制數的00010001
即運算結果為z等於二進制數00010001,即z等於十進制數17。
對於如下程序段:
int x = -70; //x等於二進制數的11000110
int y = 2;
int z = x>>y //z等於二進制數的11101110
即運算結果為z等於二進制數11101110,即z等於十進制數-18。要透徹理解右移和左移操作,讀者需要掌握整數機器數的補碼表示法。
(3)0填充的右移(>>>)是不論被移動數是正數還是負數,左邊移進的部分一律補0。

5.其他運算符

(1)賦值運算符與其他運算符的簡捷使用方式
賦值運算符可以與二元算術運算符、邏輯運算符和位運算符組合成簡捷運算符,從而可以簡化一些常用表達式的書寫。
賦值運算符與其他運算符的簡捷使用方式
運算符 用法 等價於 說明
+= s+=i s=s+i s,i是數值型
-= s-=i s=s-i s,i是數值型
*= s*=i s=s*i s,i是數值型
/= s/=i s=s/i s,i是數值型
%= s%=i s=s%i s,i是數值型
&= a&=b a=a&b a,b是邏輯型或整型
|= a|=b a=a|b a,b是邏輯型或整型
^= A^=b a=a^b a,b是邏輯型或整型
<<= s<<=i s=s<<i s,i是整型
>>= s>>=i s=s>>i s,i是整型
>>>= s>>>=i s=s>>>i s,i是整型

(2)方括弧[]和圓括弧()運算符
方括弧[]是數組運算符,方括弧[]中的數值是數組的下標,整個表達式就代表數組中該下標所在位置的元素值。
圓括弧()運算符用於改變表達式中運算符的優先順序。

(3)字元串加(+)運算符
當操作數是字元串時,加(+)運算符用來合並兩個字元串;當加(+)運算符的一邊是字元串,另一邊是數值時,機器將自動將數值轉換為字元串,這種情況在輸出語句中很常見。如對於如下程序段:
int max = 100;
System.out.println("max = "+max);
計算機屏幕的輸出結果為:max = 100,即此時是把變數max中的整數值100轉換成字元串100輸出的。

(4)條件運算符(?:)
條件運算符(?:)的語法形式為:
<表達式1> ?<表達式2> : <表達式3>
條件運算符的運算方法是:先計算<表達式1>的值,當<表達式1>的值為true時,則將<表達式2>的值作為整個表達式的值;當<表達式1>的值為false時,則將<表達式3>的值作為整個表達式的值。如:
int a=1,b=2,max;
max = a>b?a:b; //max等於2

(5)強制類型轉換符
強制類型轉換符能將一個表達式的類型強制轉換為某一指定數據類型,其語法形式為:
(<類型>)<表達式>

(6)對象運算符instanceof
對象運算符instanceof用來測試一個指定對象是否是指定類(或它的子類)的實例,若是則返回true,否則返回false。

(7)點運算符
點運算符「.」的功能有兩個:一是引用類中成員,二是指示包的層次等級。

6.運算符的優先順序
以下按優先順序從高到低的次序列出Java語言中的所有運算符,表中結合性一列中的「左?右」表示其運算次序為從左向右,「右?左」表示其運算次序為從右向左。

優先順序 運算符 結合性
1 . [] () ; ,
2 ++ ―― += ! ~ +(一元) -(一元) 右?左
3 * / % 左?右
4 +(二元) -(二元) 左?右
5 << >> >>> 左?右
6 < > <= >= instanceof 左?右
7 = = != 左?右
8 & 左?右
9 ^ 左?右
10 | 左?右
11 && 左?右
12 || 左?右
13 ?: 右?左
14 = *= /= %= += -= <<= >>= >>>= &= ^= |= 右?左

⑤ ~在編程中代表什麼

~在編程中代表二進制位NOT的運算,
比如我們有一個8 bytes的unsigned int型:
unsigned int a = 2;
因為是無符號型的並且是8位元組長的整型,所以所有二進制位都表示數值:
2---->(十進制->二進制)
然後現在我們新建一個變數叫做
unsigned int b=~a;
那麼我們就對a的二級制位做了NOT的運算,所以b得出的結果就是:
-->4294967293(二進制->十進制)
所以,~就是對二進制位做NOT運算,直接把數值轉換成二級制後進行運算就知道了。
然後,帶符號的整型經過~轉換後(比如int類型),正負號也會發生變化,因為int二進制的第一位是代表是正還是負的bit.

⑥ bat里if命令中的not開關的作用是什麼

bat里if命令中的not開關的作用為對條件進行取反運算。

舉例說明:

1、下方語句功能為:如果C盤根目錄下存在1.txt,那麼打開記事本程序;

IF EXIST C:1.TXT NOTEPAD.EXE

2、下方語句功能為:如果C盤根目錄下不存在1.txt,那麼打開記事本程序;

IF not EXIST C:1.TXT NOTEPAD.EXE

分析結論:可以看出not在語句中起到了表達完全相反的條件這樣的作用。

⑦ 西門子PLC中,取反指令NOT

賦值的符號為 :=,注意一定要用英文半形的標點符號,變數可以中文變數,先看最簡單的一個觸點控制線圈輸出的語句:

常開觸點控制線圈

常閉觸點用取反指令NOT,其它的和常開觸點一樣

常閉觸點控制線圈

串聯觸點中間用AND或者符號&進行連接

串聯觸點的寫法

串聯中的常閉觸點,別忘了加NOT

一常開一常閉觸點

並聯觸點指令為OR

兩個常開觸點並聯

並聯觸點中用常閉依然要加NOT

一常閉一常開觸點並聯

串聯和並聯的混合輸入,可以加入括弧以區分,不然初學者會傻傻分不清邏輯

串聯和並聯的混合輸入,可以加括弧以區分

除了上面的,還有一種異或運算,符號為XOR,意思是兩個值做異或運算,當兩個值相同時,結果為0,當兩個值不同的,結果為1,與梯形圖比較可以寫成如下所示:

異或運算

SCL語言很簡單,如果有高級語言基礎,基本一天就可以學會,三天精通,五天就可以隨便寫程序了,關鍵在於在堅持。
在TIA博途軟體中,默認支持SCL語言,在建立程序塊時可以直接選擇SCL語言。

SCL語言類似計算機高級語言,如果你有C、Java、C++、python這種高級語言的學習經歷,再學習SCL就會容易很多。

在用SCL語言編程時,主要用IF...THEN/FOR/WHILE語句去構造條件、循環、判斷這樣的結構,在這些結構中再次添加指令,去實現邏輯判斷。所有程序的編寫都是在純文本的環境下編輯,不像梯形圖那麼直觀。

能把SCL運用的比較靈活的,大多是從IT轉行過來做工控的人。本人就對SCL不太感冒,雖然一直在學習。

1、新建SCL語言功能塊

在TIA博途軟體中能直接建立SCL語言的功能塊,如下圖所示,只需要在語言下拉列表中選擇SCL即可。

新建好程序塊直接打開,會進入SCL的編輯環境,

2、SCL語言指令介紹

介紹指令之前先說一些,高級語言編寫基礎知識。

一行代碼結束後要添加英文分號,表示改行代碼結束。
所有代碼程序都為英文字元,在英文輸入法下輸入字元。
可以添加中文注釋,注釋前先添加雙斜杠,即://。這種注釋方法只能添加行注釋,段注釋要插入一個注釋段。
在SCL中變數需要在雙引號內,定義好變數後軟體能輔助添加。
每種高級語言的編寫都有各自基礎規則,建議大家多了解,不要在基礎知識上犯錯誤。

⑧ python裡面if…andnot什麼意思

一、not、and、or的含義以及優先順序對象返回結果優先順序not xif x is false,then True,else False1

x and yif x is false,then x,else y2

x or yif x is false,then y,else x3

含義:not是 「非」 ;and是 「與」 ;or是 「或」 (可以用數學去理解)

1、not True = False 或者 not False = True (非真就是假,非假即真)

2、and是一假則假,兩真為真,兩假則假

3、or是一真即真,兩假即假,兩真則真

優先順序是 not > and > or

代碼如下(示例):

x=1 #將x賦值為1

y=0 #將y賦值為0

z=0 #將z賦值為0

print(x or y and not z)

'''

輸出結果為

1

'''

小提示: 我們知道在編程語言中「非0即是True」,也就是「0為False,1為True」由於優先順序是not>and>or,所以首先執行not z(也就是not 0),

即 not 0 = not False =True =1

下一步是輪到了and,那麼 y and 1(已知y=0)即 0 and 1,也就是

False and True (假與真),我們剛剛談過and,一假即假,故

y and 1 = 0 and 1 = False = 0

最後一步按優先順序是輪到了or,即 x or 0(已知x=1),

即 1 or 0 =True or Flase =True = 1(or即「或」中,一真即真)

所以輸出結果為 1總結: 代碼運算過程為: (用數學符號表示優先順序)

{ x or [ y and (not z) ] }

二、not、and、or的使用方法

1.not

if x is false,then True,else False

如果x為False則not x 為True,否則為False

(如果x是假的,則「非假」為真,否則x是真的,則非真為假)

在編程中是 布爾運算,即返回值是True 或者 False

代碼如下(示例):

print(not 0,not 1,not True,not False)

'''

輸出結果為:

True False False True

'''

2.and

and運算後的返回結果:

從左到右計算表達式,若所有的都為真,則返回最後一個值,若存在假,返回第一個值。

簡單理解:

and的目的是找到並返回第一個False(假)或最後一個True(真) (從左往右找)(一假即假,兩真即真)

代碼如下(示例):

1、找到並返回第一個False(假)

print(1 and 2 and 0 and 4 and False)

'''

輸出結果為:

0

'''

因為and是找到第一個False(假),我們知道在計算機中,

False即為0,所以輸出結果是 0

2、找到並返回最後一個True(真)

print(1 and 2 and True and 4 and 6)

print(2 and 5 and True and 7 and True)

'''

輸出結果為:

6

True

'''

因為 1,2,True,4,6 都不是0,我們知道 非零True,所以都是 真的,那麼輸出最後一個真值,所以輸出結果為 6

因為 2,5,True,7,True 都不是0,都是真的,同理輸出最後一個真值,所以輸出結果為 True

3.or

or運算後的返回結果:

從左到右計算表達式,只要遇到真值就返回那個真值,如果表達式結束依舊沒有遇到真值,就返回最後一個假值。

⑨ 丨not丨在編程中是啥意思

邏輯非,否定的意思。
not a>b,
就是 a不大於b的意思,即a ≤b

⑩ VB程序設計, not ,and , or 概念是什麼

not
用來對表達式進行邏輯否定運算。
語法
result=Notexpression

and
用來對兩個表達式進行邏輯連接。
語法
result=expression1Andexpression2

or
用來對兩個表達式進行邏輯析取運算。
語法
result=expression1Orexpression2

熱點內容
投資經理編程 發布:2025-07-15 23:04:06 瀏覽:639
本地伺服器讓外網訪問 發布:2025-07-15 23:02:49 瀏覽:398
ftp掃描器 發布:2025-07-15 23:01:45 瀏覽:47
安卓手機數據保存在哪個文件夾 發布:2025-07-15 23:01:06 瀏覽:762
p30是什麼編譯器 發布:2025-07-15 22:49:21 瀏覽:955
問道手游ios版和安卓版有什麼區別 發布:2025-07-15 22:43:27 瀏覽:780
java拼接數組 發布:2025-07-15 22:35:29 瀏覽:961
c語言比較結構體 發布:2025-07-15 22:34:50 瀏覽:105
雲台主要演算法 發布:2025-07-15 22:34:48 瀏覽:377
冰箱壓縮機能修嗎 發布:2025-07-15 22:27:59 瀏覽:64