Van olyan eset C-ben, amikor egy szám ellentettje önmaga?
Van. 0.
Ezen kívül az előjel nélküli típusok esetén azok a számok, amelyek bináris alakja 1-essel kezdődnek és utána csak 0 áll.
4 biten: 1000 + 1000 = 10000, de a túlcsordulás miatt csak 0000 marad meg, így 1000 + 1000 = 0
0, mint a matematikában.
Vagy a C-ben már a definíciója a szám ellentetjének, mint a matematikában??? Érdekes lenne, de szívesen látok bármilyen hivatkozást.
"A matematikában egy x szám ellentettje vagy additív inverze az a szám, amivel x-et összeadva az eredmény nulla."
Kód:
#include <stdio.h>
int main() {
unsigned char a = 128;
unsigned char b = a + a;
printf("%d + %d = %d\n", a, a, b);
return 0;
}
Kimenet: 128 + 128 = 0
#include <stdio.h>
#include <limits.h>
int main() {
unsigned char a = UCHAR_MAX / 2 + 1;
unsigned char b = a + a;
printf("%u + %u = %u\n", a, a, b);
return 0;
}
kimenet: implementációfüggő, de ha az UCHAR_MAX páratlan, akkor találtunk egyet
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!