Vad betyder % i C++?

Här pratar vi programmering i dessa olika former. Perl, C/C++, Pascal, ADA, Lisp, COBOL, ZX Basic och mm.
Post Reply
robert
Posts: 130
Joined: 17 October 2003, 18:08
Contact:

Vad betyder % i C++?

Post by robert » 22 October 2003, 10:28

Vad betyder följande rad i C++?

[variabel1] = ([variabel1]+1)%2;

Mvh
/Robert

User avatar
thuswa
Posts: 2142
Joined: 8 September 2002, 23:51
Location: Linköping

Re: Vad betyder % i C++?

Post by thuswa » 22 October 2003, 10:59

robert wrote:Vad betyder följande rad i C++?

[variabel1] = ([variabel1]+1)%2;

Mvh
/Robert
% operatorn kallas för module ger resten vid division
dvs tex: 11%3 = 2
havoc: Athlon XP 2200+, DDR333 512Mb: SuSE 9.0, Gentoo 1.4rc2
stalker: Compaq Armada E500, PIII-800Mhz, 320Mb: SuSE 8.2
guru: Compaq LTE 5300, P-120, 96Mb: Debian Sid

User avatar
e8johan
Posts: 1921
Joined: 2 December 2002, 11:13
Location: Alingsås
Contact:

Re: Vad betyder % i C++?

Post by e8johan » 22 October 2003, 11:20

thuswa wrote:
robert wrote:Vad betyder följande rad i C++?

[variabel1] = ([variabel1]+1)%2;

Mvh
/Robert
% operatorn kallas för module ger resten vid division
dvs tex: 11%3 = 2
modulo, annars stämmer det.

User avatar
thuswa
Posts: 2142
Joined: 8 September 2002, 23:51
Location: Linköping

Re: Vad betyder % i C++?

Post by thuswa » 22 October 2003, 11:24

e8johan wrote:modulo, annars stämmer det.
Visst, det är nog det den heter på "svenska".
havoc: Athlon XP 2200+, DDR333 512Mb: SuSE 9.0, Gentoo 1.4rc2
stalker: Compaq Armada E500, PIII-800Mhz, 320Mb: SuSE 8.2
guru: Compaq LTE 5300, P-120, 96Mb: Debian Sid

User avatar
e8johan
Posts: 1921
Joined: 2 December 2002, 11:13
Location: Alingsås
Contact:

Re: Vad betyder % i C++?

Post by e8johan » 22 October 2003, 13:06

thuswa wrote:
e8johan wrote:modulo, annars stämmer det.
Visst, det är nog det den heter på "svenska".
Looks like English to me: http://wombat.doc.ic.ac.uk/foldoc/foldo ... o+operator

Lucifer888
Posts: 4111
Joined: 3 February 2003, 12:18
Location: Stockholm

Post by Lucifer888 » 22 October 2003, 14:21

$a % $b Modulus Remainder of $a divided by $b.
Den heter Modulus inom php iaf... det står på php's egna hemsida

User avatar
panzar
Posts: 100
Joined: 23 April 2003, 22:07

Post by panzar » 22 October 2003, 21:39

Jo, modulus har jag alltid hört också..

robinr
Posts: 1662
Joined: 10 July 2002, 00:27

Post by robinr » 22 October 2003, 23:14

Addition: a plus b
Modulus: a modulo b

etc.

User avatar
md2perpe
Posts: 932
Joined: 12 July 2002, 18:27
Location: Hallonbergen, Kungsbodarna

Post by md2perpe » 22 October 2003, 23:31

Du menar att räknesättet heter modulus, men operatorn modulo?

Det var mer än jag visste... Ändå har jag läst 90p matte på universitetet. :o
RTFM: förkortning som är bra att ta till om man vill låtsas tycka att frågan är trivial, fast man egentligen inte själv har ett svar.

robinr
Posts: 1662
Joined: 10 July 2002, 00:27

Post by robinr » 23 October 2003, 00:25

90p ≠ vet allt. :-) Du kanske kan förklara bättre.

User avatar
e8johan
Posts: 1921
Joined: 2 December 2002, 11:13
Location: Alingsås
Contact:

Re: Vad betyder % i C++?

Post by e8johan » 23 October 2003, 07:12

robert wrote:Vad betyder följande rad i C++?

[variabel1] = ([variabel1]+1)%2;
Variablens värde pendlar mellan 1 och 0, då % ger resten vid division:

1+1 = 2 => 0
1+0 = 1 => 1

Fördelen med skrivsättet (framför att använda ?: eller if-else) är att variablen kan ha vilket värde som helst. Udda in => jämnt ut och vise versa.

bnet
Posts: 97
Joined: 27 May 2003, 18:22
Location: Hyssna
Contact:

Post by bnet » 28 October 2003, 22:44

mm

robinr
Posts: 1662
Joined: 10 July 2002, 00:27

Post by robinr » 28 October 2003, 23:45

Enklast och snyggast är nog

Code: Select all

v = !v
.

Att ta resten efter division med två verka "jobbbigt". Möjligen är det ineffekivt också.

User avatar
e8johan
Posts: 1921
Joined: 2 December 2002, 11:13
Location: Alingsås
Contact:

Post by e8johan » 29 October 2003, 08:00

robinr wrote:Enklast och snyggast är nog

Code: Select all

v = !v
.

Att ta resten efter division med två verka "jobbbigt". Möjligen är det ineffekivt också.
Är !0 alltid lika med 1 då? Är det inte bara nollskiljt?

User avatar
md2perpe
Posts: 932
Joined: 12 July 2002, 18:27
Location: Hallonbergen, Kungsbodarna

Post by md2perpe » 29 October 2003, 08:20

Eller v = 1 - v.
RTFM: förkortning som är bra att ta till om man vill låtsas tycka att frågan är trivial, fast man egentligen inte själv har ett svar.

User avatar
e8johan
Posts: 1921
Joined: 2 December 2002, 11:13
Location: Alingsås
Contact:

Post by e8johan » 29 October 2003, 08:58

md2perpe wrote:Eller v = 1 - v.
Haken uppstår om v varken är 0 eller 1 när det hela inleds...

User avatar
md2perpe
Posts: 932
Joined: 12 July 2002, 18:27
Location: Hallonbergen, Kungsbodarna

Post by md2perpe » 29 October 2003, 11:08

Visst, men om v är korrekt initierad så...
RTFM: förkortning som är bra att ta till om man vill låtsas tycka att frågan är trivial, fast man egentligen inte själv har ett svar.

robinr
Posts: 1662
Joined: 10 July 2002, 00:27

Post by robinr » 29 October 2003, 11:45

e8johan wrote:Är !0 alltid lika med 1 då? Är det inte bara nollskiljt?
!0 är alltid 1 per definition i C/C++

~0 är 0 eller -1 (med signed int etc) i C/C++ beroende på arkitektur (låt vara att 1's-komplementmaskiner är ovanliga).

Java å andra sidan använder alltid 2's-komplement så där är ~0 alltid -1.

Post Reply