Fermana Linux / Unix: expr

Nav

expr - Nirxandina îfadeyê

Synopsis

expr arg ? arg arg ... ?

Argatenates argak (deverên dabeşkirinê yên di navbera wan de), encamên wekî Tcl expressionek nirxandin û nirxa xwe vegerîne. Operatorên di navnîşanên Tcl-ê de destûra operatorên di navnîşana C-anî de têne destnîşankirin, û ew heman wateya û pêşîn wek wekî operatorên peywendîdar hene. Gotinên hema hema hema hema hema her encamên encamên nimûne (nirxên hundir an hejmarên dravî). Bo nimûne, îfadeyê

expr 8.2 + 6

nirxandin 14.2. T expressionên Tcl îfadeyên ji C expressionên cuda hene ku di rê de ku operands diyar kirin. Her weha, şertên Tcl, piştgiriya ne-numerîk û hevpeymanên piştgirî dikin.

Operasyon

Têkiliya Tcl a tevlîhevkirina operasyona, operator, û dînok. Cihê spî dikare di navbera operasyona û operator û mêrînan de tê bikaranîn; Ev ji hêla ramanên îfadeyê ve têne xuya kirin. Li ku derê gengaz e, xebatên wekî nirxên integer têne şirove kirin. Nirxên Integer dikare di navîn (deverek normal), di octal de (heke yekem carterê operasyona 0 e ye), an jî hexadecimal (heger du celebên yekem ên operasyona 0x e ). Heke ku operasyona yek ji heqê dabeşkirî ya hejmarên nifş in tune ye, hingê ew dibe ku heke heke mimkun e. Hejmarek navnîşan-niqaş dikarin di her awayî de ji hêla ANSI-compliant C compiler ve têne qebûl kirin (ji bilî saziyên fonksiyonên F , F , l , û L Lê bêtir sazkirinan) destûrê ne. Ji bo nimûne, hemî jêrîn hejmarên hewayê yên rastîn: 2.1, 3., 6e4, 7.91e + 16. Heke şîrovekirina nimûne hebe, hingê operasyona wekî qonaxek çepê ye (û tenê xeletek sînor tenê sînor tête kirin).

Operands dikarin di her awayên jêrîn de diyar bikin:

[1]

Wek ku nirxek nimûne, an jî hete anteger an jî xist.

[2]

Wek ku guherînek Tcl, bikarhêner $ $ standard. Weya nirxê guherîn wekî wekî operandeyê tê bikaranîn.

[3]

Wek ku di encama double-quotes de girêdayî ye. Gotara parserê li ser agahiyên di navbera quotes, paşeng, û deverên fermandar pêk tîne, û wateya wateya wateya operasyona wekî operand

[4]

Wekî qeşikê di bin destûra xwe de vekirî ye. Karakên di navbera kulê vekirî û bermîliya nêzîkî wê dê wekî operasyona bêyî guhertinên bikar bînin.

[5]

Wek ku emrê li Tûçikan ve girêdayî ye. Fermana wê darvekirin û encam wê wekî operandarek bikar anîn.

[6]

Wekî ku fonksiyona mathematîk a ku argûyên ji jorên jor ên jor ji bo xebitandinê hene, wek guneh ($ x) . Ji bo lîsteya karên erêkirî bin bin binêrin.

Cihên ku li jêr têne çêkirin (wek nimûne hundirê hundurên quartî), ew bi rêberên îdareyê têne kirin. Lêbelê, tehlika bêtir veguherî dikare ji hêla parserê ve berî ku pêvajoya xwenîşandan tê gotin tê kirin. Wekî ku jêrîn nîqaş kirin, bi gelemperî ew eşkere dike ku di navgîniyê de bi şiroşên ku ji parserê ji veguherînên li ser naveroka performansê pêk tê.

Ji bo hin mînakên ji gotinên zelal ên hêsan, difikirin ku celebek xwedî xerca 3 heye û b bêjeya bêjeya wêjeyê ye. 6. Pêveka li milê li milê jêrîn her dê li ser milê rastê ya rastê hilber bike:

$ 5 + $ a6.1 expr 2 + "$ a. $ b" 5.6 expr 4 * [llength "6 2"] 8 expr {{word one} <"peyva $ a"} 0

Operator

Operatorên derbasdar li jêr têne lîstînkirin, di kêmkirina birêvekirina pêşdibistanê de tête kirin:

- + ~!

Unary minus, unary plus, bit-wise, not logical. Ne yek ji van operands dikarin bi operasyonên celeb bikar bînin, û dibe ku tenê ji hundurên dersan têne bikaranîn.

* /%

Multiply, divide, remainder. Yek ji van operasyona ku bi operasyonan ve girêdayî ye, lê dibe ku tenê bimîne li hundurên dagirkeran. Piştgir dê herdem heman nîşanek heye wekî dabeşker û yekgirtiyek piçûktir ji dîskor.

+ -

Add and disc Ji bo operasyonên nimûne nirxandin.

<< >>

Çep û rastê ye. Ji bo Îteger ji bo xebatên tenê derbas dike. Pêwîstek rast her tim her demek pirtûka xwe dikeve.

<> <=> =

Bûleya kêm, mezintir, bêtir an jî wekhev, û ji hêja an wekhev. Her operatorek 1 hilberîne heger rewşa rewş rast e, 0 an jî. Ev operator dikarin li ser strên û herweha wekî operasyona nimûne bikar bînin, di kîjan rewşê de tê bikaranîn.

==! =

Boolean wekhev û ne wekhev. Her operator yek encam / yek encam dide. Ji bo hemî rêbazên hemî operand rast e.

&

AND BAR-BAR. Ji bo Îteger ji bo xebatên tenê derbas dike.

^

OR-wise-an jî an. Ji bo Îteger ji bo xebatên tenê derbas dike.

|

OR-WIR. Ji bo Îteger ji bo xebatên tenê derbas dike.

&&

Û ya 1 encam hilberîne heger herdu operands jî ne-şûne ne, ne wateya. Ji bo bolele û nimûne (qeletên anjî an gavê-ango) ji bo hêja tenê ye.

||

OR Dibe ku encamên sîvîl in, encam 1 0 hilberîne, 1 nabe. Ji bo bolele û nimûne (qeletên anjî an gavê-ango) ji bo hêja tenê ye.

x ? y : z

Heke-din-ê, wekî di c. X x nirxa nirxî ye, paşê encam nirxa y e . Wekî din, encama nirxê z e . Operasyona x divê hûn nirxek nimûne.

Ji bo her operatorê hilberandin encamên zêdetir agahdariyê ji bo C Manualek bibînin. Hemî operatorên binaryan di nav asta pêşdibistana çepê-çepê de çepê. Bo nimûne, fermana

expr 4 * 2 <7

vegerin 0.

&& , || , û ?: Operatorên xwedî `` razek nirxandin ', tenê wekî di C, tê wateya ku operasyona nirxandin nebe ku ew ne hewce ne ku ji bo encamê encam bikin. Wek mînak, di emrê de

expr {$ v? [a]: [b]}

Tenê yek ji [a] an jî b] dê di binirxandina $ v . Têbigere, lêbelê ev yek tenê rast e ku hema tevahiya îfadeyê di brajiyan de ve girêdayî ye; Wekî din, dê ji TC parser dê hemî [a] û [b] binirxînin berî ku biryara expr .

Fun Functions

Tcl bi karûbarên mathematîkî piştevanîya piştevanîya piştevanîya piştevanîya piştevanîya piştevanî dide

abs cosh log logrt avero double log10 srand asin pow powan atan floor rand tanh atan2 fmod round ceil hypot sin cos int sinh

abs ( arg )

Virta nirxa tevahiya argûmê vegerîne. Arg dikare bibe anteger an ango-dor, û encam di heman rengê de vegerî ye.

acos ( arg )

Rêjeya kevneşopî [0, pi] rêjîmanên kovînerê argê vedigere. Arg divê di nav rêjîmê de [-1,1].

asin ( arg )

Rêjeya sine ya arg , di nav rêjeya [-pi / 2, pi / 2] rûbirû vedigere. Arg divê di nav rêjîmê de [-1,1].

atan ( arg )

Bi rêjeyên [-pi / 2, pi / 2] rêjeyên arc tangent of arg vegerîne.

atan2 ( x, y )

Vegere arc tangent of y / x , di nav rêjeya [-pi, pi] rîtiyan de vegerîne. x û y nikare hem jî 0.

ceil ( arg )

Viyetnameya piçûk ya herî piçûk nayê kêm kirin.

en.wiktionary.org cos ( arg )

Veşêrek argû vedigire, di rîtiyanan de nirxandin.

cosh ( arg )

Vegere hyperbolic cosine of arg . Heke encamek dê bibe serî, xeletiyek vegerî ye.

du ( arg )

Heke argek nirxek bihêz e, argûya vegerî, nehêle arak dakêşîne û wateya guherînê vedigire.

exp ( arg )

Vegerîna berbi argakê , wekî e ** arg . Heke encamek dê bibe serî, xeletiyek vegerî ye.

floor ( arg )

Nirxa herî mezintirîn herî zêde ya argû re vegerîne.

fmod ( x, y )

Vegerîna xala dûr ya dabeşkirina x x by y . Ger y y 0, çewtiyek vegerî ye.

hypot ( x, y )

Dema dirêjahiya hîpotenuse ya triangola rast-angled ( x * x + y * y ) digire.

int ( arg )

Heke arag an nirxek integer e, argakên vegerî, nehêle araqê diqewitîne bi hêsankirina veguhastinê û nirxê veguherî vegerîne.

log ( arg )

Zebûrkirina sirûştiya xwezayî ya argûyê vegerîne. Arg divê pîvana erênî be.

log10 ( arg )

Reşeya 10 logarithm ya arg vegerîne. Arg divê pîvana erênî be.

pow ( x, y )

Ji hêla xêra x x bi hêza y yî ye . Heke xelet e, y divê hûn nirxek anteger be.

rand ()

Vê hejmara niqaş ji heqê kêmtir ji kêmtir an jî, di warê mathematical, rêjeya [0,1] de vegerîne. Zev ji hundirê demjimêrê hundurê tê tête an jî dibe ku bi karê srandê destnîşan bike.

dora ( arg )

Heke arag an nirxek integer e, argakên vegerî, nehêle araqê ji hêla rêwîtiyê ve dike û veguhastina veguhastinê veguherîne.

guneh ( arg )

Sine of arg vegerîne, di rîtiyan de tewqe.

sinh ( arg )

Reina hyperbolic sine of arg . Heke encamek dê bibe serî, xeletiyek vegerî ye.

sqrt ( arg )

Veşêre root of arg . Arg divê bê neyînî be.

en.wiktionary.org srand ( arg )

Arg , ku pêwist e, hebe ji bo nifşê jînerê random random re bikar bîne. Ji hebê nimreya yekem re vegerîne. Her wergêrek xwediyê xwê xwe ye.

tan ( arg )

Vegerîna tangentê argûn , di radîkalan de nirxandin.

tanh ( arg )

Vegere hyperbolic tangent of arg .

Ji bilî karên van pêşniyazên pêşniyaz, serîlêdanên dikarin bi karanîna Tcl_CreateMathFunc () bikaribin karên din zêde bike.

Tîpa, Overflow, û Precision

Hemhevkirina hundurên hundurên hundurên hundurên hundurên bi bi curekî dirêj ve pêk tê kirin , û hemî komputerên tevlîhev yên navxweyî digel qonaxa C- du -ê têne kirin. Dema ku veguherîna kulkek li ser xist-pointê, veguhestina zerfê tê dîtin û encam li çewtiyek Tcl. Ji bo veguhertina kişandina ji hêja ji tûr, lêgerîna seranserî li ser riya hinek cûrbeyên li Pirtûkxaneya C li herêmê girêdayî ye, da ku ew bête wek nirxandin. Di her rewşê de, hejmarên bêkêş û binî li gelemperî bi gelemperî ji bo encamên navendî nayê dîtin. Li ser pevçûnê-ango li binavê û binê binavê ku ji hêla pisporê piştgirî ve têne destnîşan kirin, ku bi gelemperî gelekî girîng e.

Guhertina navendên navxweyî yên ji bo hundurê hejmarê, xistin, û operasyonên strûmen bixwe dibe ku bixwe hewce ye. Ji bo peymanên arithmetîk, hejmar tête bikar anîn heya ku hejmarek hinek hejmar-hejmar têne destpêkirin, piştî ku çiqas bisekilînek tête bikar anîn. Bo nimûne,

expr 5/4

vegerandin 1, dema

expr 5 / 4.0 expr 5 / ([length length "abcd"] + 0.0)

her duçê 1.25. Hêjayên nirxên gavê herdem herdem bi `` . '' an e ku ew nirxên hejmarên xwe nabînin. Bo nimûne,

expr 20.0 / 5.0

4.0 vegerin, 4 ne .

Operasyonên String

Nirxên dirûşmên wekî karûbarên operatorên danûstendinê bikar tê bikaranîn, her çiqas nirxandina nirxandinê hewl dide ku wekhevî wekhev-anjîner an gavê-ê ku dikare dikare bike. Ger yek ji karûbarên danûstendineke berbiçav e û hebûna din nirxek nimûne, operasyona nimûne bi veguherîna nimûne veguherînek veguhastin ji hêla sprintf formatê % d ji bo pîvanên û % g ji bo nirxên nirxên bihayê. Wek mînak, emrê

expr {"0x03"> "2"} expr {"0y" <"0x12"}

herdu vegera 1. Dabeşîna yekem tê bikaranîn bi karûbarên integer tête kirin, û duyemîn bi karanîna string stringê piştî piştî operasyona duyemîn di bin strûqa 18 de hate guherandin . Ji ber ku ji ber tecrûbeya Tcl-hema hema hema hema hema hebe, hejmareke bi gelemperî fikra baş e ku wekî operator bikar bînin == dema ku hûn bi rastî bihevhatina stringê dixwazin û nirxên operasyonê dikarin bi awayekî xwezayî ne; Di van rewşan de baştirîn e ku ji bila fermandariya string bikar bînin.

Pêdivîkirinên Performans

Gotinên hûrgelan ên ku ji bo leztirîn herî baş û hewceyên barkêş ên herî piçûk hene. Ev rêve dike ku Tcl compressor byteodeode ji bo kodê herî baş çêbikin.

Wekî ku jor bêjin, hûrguman du caran veguherîn têne: yek ji hêla Tcl parser ve û careke din ji aliyê fermandariya expr . Wek mînak, emrê

3 set b {$ a + 2} expr $ b * 4 set

Vegerîn 11, çend kesek 4. Ji ber ku dê yekemîn b , b 'b ' bikişîne $ yek + $ dabeş bikin, paşê dê emrê wergirtina gotara $ a + 2 * 4 binirxîne.

Pirrjimariyên ku ji dora duyemîn veguherînên veguhestinê ne hewce ne. Yan jî ew di nav destûran de nebe an jî, eger ne, alternatîfên guherîn û deverên wan yên hejmara wan an hejmarên xwe hene ku nexweşî wan hewce ne. Lêbelê, lewma hin hûrgelên bêbawer bi du rêyên hewceyê hewce ne, divê compiler bytecode divê rêbazên din yên din bidin vê rewşê. Koda herî giran e ku ji raveyên bêbawer ên ku veguherînên fermî hene. Divê ev eşkere divê bi herdu kodê nû çêbikin her tim dema ku îfadeyê hate darizandin.

Peyvên

arithmetîk, boolean , danûstendin, gotar, fuzzy comparison

Girîng: Mirovekî meriv ( % mêr ) bikar bînin ku hûn çawa dibînin ku emrê çawa di komputerê de tê bikaranîn.