Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
-S -masm=intel
здесь многоточие не означает иррациональность числа
#include <stdio.h>
int main()
{
float a = 1.005f, b = 1000.0f;
int c = (int)(a * b);
printf("%d\n", c);
return 0;
}
#include <stdio.h>
int main()
{
float a = 1.0f, b = 1.0f, m = 10.0f;
int c = 1; while (a != a + (b /= m)) c++;
printf("%d\n", c);
return 0;
}
The result of E1 >> E2 is E1 right-shifted E2 bit positions.… If E1 has a signed type and a negative value, the
resulting value is implementation-defined.
-O0 -fdump-tree-optimized
, то будет следующий вывод: a_1 = 1;
_2 = (int) a_1;
_3 = ~_2;
_4 = _3 >> 1;
b_5 = (unsigned char) _4;
_6 = (int) b_5;
printf ("%u\n", _6);
The Number type has exactly 18437736874454810627 values, representing the double- precision 64-bit format IEEE 754 values as specified in the IEEE Standard for Binary Floating-Point Arithmetic, except that the 9007199254740990 distinct ―Not-a-Number‖ values of the IEEE Standard are represented in ECMAScript as a single special NaN value.
По той простой причине, что, например, сравнивать float-ы с нулём, а на равенство — и друг с другом, быстрее через int*, чем через float*.
На практике на конкретных платформах скорость работы отличается в несколько раз.
Система типов в C-- преднамеренно спроектирована так, чтобы отображать ограничения, налагаемые аппаратным обеспечением компьютера, а не традициями систем типов более высокоуровневых языков. В C-- значение, хранимое в регистрах или памяти, может быть только одного типа — битовый вектор. Однако, битовый вектор является полиморфным типом и может быть разного размера: например, 8-битный или 32-битный. Кроме того, кроме битового вектора C-- также предоставляет булевский тип bool, который может быть типом результата выражения, а также может использоваться для управления выполнением программы и не может быть сохранён в регистре или в памяти.
char l;
int i;
...
i=l;
0: 48 31 c0 xor %rax,%rax 3: 31 c0 xor %eax,%eax
Два парадокса в программах на языке C