constricta
Goto Top

Batch Rechenbefehle

Ich möchte in einer Batch gerne sachen berechnen, darunter auch hochzahlen! geht sowas? wenn ja wie?

wäre nett wenn wer alle rechenoperatoren aufschreiben könnte.
lg

edit:
ok wie mit einem taschenrechner "^" aber wie rechnet man zb.:

1*2^7 ? da kommt 27 raus?!
lg

Content-ID: 109418

Url: https://administrator.de/contentid/109418

Ausgedruckt am: 25.11.2024 um 13:11 Uhr

bastla
bastla 18.02.2009 um 21:38:13 Uhr
Goto Top
Hallo ConsTricTa!
ok wie mit einem taschenrechner "^"
Mitnichten - die entsprechende Funktion musst Du selber bauen:
@echo off & setlocal
set /a Basis=2
set /a Exponent=7

set /a Potenz=1
for /L %%i in (1,1,%Exponent%) do set /a Potenz*=Basis
echo %Potenz%
wäre nett wenn wer alle rechenoperatoren aufschreiben könnte.
set /?

Um aber noch "2^7" aufzuklären:
Ein einzelnes "^" maskiert das folgende Zeichen (und weist damit den Interpreter an, dieses Zeichen eben nicht zu interpretieren, sondern als gewöhnliches Zeichen zu betrachten) - was für 7 keinen Unterschied macht.

Wenn Du tatsächlich die Batch-Operation "2^7" ausführen willst, musst Du daher entweder schreiben
set /a 2^^7
oder
set /a "2^7"
und erhältst dann das richtige Ergebnis 5.

Warum 5? Wie der Hilfe zu entnehmen ist, wird mit "^" eine XOR-Operation druchgeführt, also:
    2 = 00000010
XOR 7 = 00000111
    -   --------
    5 = 00000101
    =   ========
Grüße
bastla
ConsTricTa
ConsTricTa 18.02.2009 um 22:19:09 Uhr
Goto Top
vielen dank für deine schnellen und hilfreichen antworten!!! super erklärt! das versteh ich.

nur diese XOR sachen werd ich nie checken -.-
hier werden die zahlen in binärzahlen umgewandelt und addiert! aber wie genau rechnet er hier und warum?!
lg
bastla
bastla 18.02.2009 um 22:22:47 Uhr
Goto Top
Hallo ConsTricTa!

XOR bedeutet: "Vergleiche bitweise, wobei zwei gleiche Bits (also beide 0 oder beide 1) ein Bit 0 ergeben, zwei ungleiche Bits ergeben 1."

Grüße
bastla