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-Key: 109418

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

Printed on: April 25, 2024 at 07:04 o'clock

Member: bastla
bastla Feb 18, 2009 at 20:38:13 (UTC)
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
Member: ConsTricTa
ConsTricTa Feb 18, 2009 at 21:19:09 (UTC)
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
Member: bastla
bastla Feb 18, 2009 at 21:22:47 (UTC)
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