О знаках....
Sep. 8th, 2008 11:23 pmNataraj: как получить максимальное значение signed long'а...
В смысле так чтобы 0 а потом 111111111111111111111 и так на все байты лонга?
Khedin: (-1 >> 1)
Khedin: не
Khedin: ((unsigned) -1 >> 1)
Khedin: а то ещё ненароком со знаком сдвинет
Nataraj: O_o Это как?
А вот оказывается как:
#include <stdio.h>
int main () {
printf ("%d\n", (-1 >> 1));
printf ("%d\n", ((unsigned)-1 >> 1));
};
$ cc test.c && ./a.out
-1
2147483647
PS спасибо
lodin за наше познание мира...
В смысле так чтобы 0 а потом 111111111111111111111 и так на все байты лонга?
Khedin: (-1 >> 1)
Khedin: не
Khedin: ((unsigned) -1 >> 1)
Khedin: а то ещё ненароком со знаком сдвинет
Nataraj: O_o Это как?
А вот оказывается как:
#include <stdio.h>
int main () {
printf ("%d\n", (-1 >> 1));
printf ("%d\n", ((unsigned)-1 >> 1));
};
$ cc test.c && ./a.out
-1
2147483647
PS спасибо
no subject
Date: 2008-09-08 07:38 pm (UTC)no subject
Date: 2008-09-08 08:02 pm (UTC)Хинт: не на всех платформах используется такое представление для отрицательных чисел и даже не везде используется двоичная система.
no subject
Date: 2008-09-08 08:25 pm (UTC)... Или, скажем, сиденья, э-э-э... виноват, кресла Тоца-воителя ...
no subject
Date: 2008-09-09 06:07 am (UTC)no subject
Date: 2008-09-08 08:06 pm (UTC)... Не рой другому яму сам! ...
no subject
Date: 2008-09-09 08:25 am (UTC)