powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему бесконечный цикл?
25 сообщений из 86, страница 2 из 4
Почему бесконечный цикл?
    #38743134
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAsaxixЕще

Почему тут true
Код: c#
1.
2.
3.
float begin = 100000000;
float end = 100000001;
Console.WriteLine(begin==end);


А тут false
Код: c#
1.
2.
3.
float begin = 10000000;
float end = 10000001;
Console.WriteLine(begin==end);


Почему для больших значений float нет разницы между 100000000 и 100000001 и т.п.Это магия, "типы точно не причем"
Понятно что типы, но что-то я не найду объяснений. Начиная с какой величины считается значение бесконечным, например.
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743215
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saxixskyANAпропущено...
Ахаха. Вы продолжаете писать глупости.

int (Int32) - это 32-разрядное целое число со знаком. 32-ой бит используется в качестве знакового бита (0 - число положительно, 1 - отрицательное).

Как бы двоичное представление наглядно показывает, что i становится отрицательным на третьей итерации и цикл продолжается бесконечно.
Да Вы не поняли в чем я запутался. Запутался в поведении for.Не вопрос. Обратимся к документации: for (Справочник по C#) .

С помощью цикла for можно циклически выполнять оператор или блок операторов до тех пор, пока указанное выражение ( condition ) не будет являться false .

Код: c#
1.
2.
for (initializer; condition; iterator)
    body


condition в Вашем случае всегда true , следовательно body выполняется бесконечно.
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743252
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAsaxixпропущено...

Да Вы не поняли в чем я запутался. Запутался в поведении for.Не вопрос. Обратимся к документации: for (Справочник по C#) .

С помощью цикла for можно циклически выполнять оператор или блок операторов до тех пор, пока указанное выражение ( condition ) не будет являться false .

Код: c#
1.
2.
for (initializer; condition; iterator)
    body


condition в Вашем случае всегда true , следовательно body выполняется бесконечно.
Спасибо. Я давно разобрался. А по float можете что сказать?
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743255
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более того:

Код: c#
1.
2.
3.
4.
var a = 10000f;
var b = 0.00001f;

Console.WriteLine(a + b);


Выведет 10000.

По поводу твоего вопроса.

Берешь ближайшие к 100 000 000 степени двойки (это будет 2^26 == 67 108 864 и 2^27 == 134 217 728) и делишь "расстояние" между ними на 2^23 (23 -- это мантисса для float) == 8 388 608 делений; получаем, что каждое деление равно 8.

Теперь: (100 000 000 - 2^26) / 8 == 4 111 392. Это число целое, т.е. искомое значение точно представимо во float (попадает в "деление"). А вот (100 000 001 - 2^26) / 8 == 4 111 392.125 и в деление не попадает, что приводит к округлению -- в данном случае, в меньшую сторону.
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743273
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saxixskyANAпропущено...
Не вопрос. Обратимся к документации: for (Справочник по C#) .

С помощью цикла for можно циклически выполнять оператор или блок операторов до тех пор, пока указанное выражение ( condition ) не будет являться false .

Код: c#
1.
2.
for (initializer; condition; iterator)
    body


condition в Вашем случае всегда true , следовательно body выполняется бесконечно.
Спасибо. Я давно разобрался. А по float можете что сказать?Лучше ссылку дам: " Что нужно знать про арифметику с плавающей запятой ".
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743307
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAsaxixпропущено...

Ну в данном случае типы точно не причем )))Ахаха. Вы продолжаете писать глупости.

int (Int32) - это 32-разрядное целое число со знаком. 32-ой бит используется в качестве знакового бита (0 - число положительно, 1 - отрицательное).

Как бы двоичное представление наглядно показывает, что i становится отрицательным на третьей итерации и цикл продолжается бесконечно.
А почему тогда Int32.MinValue=-2,147,483,648 а
Int32.MaxValue=2,147,483,647? :)
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743337
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВskyANAпропущено...
Ахаха. Вы продолжаете писать глупости.

int (Int32) - это 32-разрядное целое число со знаком. 32-ой бит используется в качестве знакового бита (0 - число положительно, 1 - отрицательное).

Как бы двоичное представление наглядно показывает, что i становится отрицательным на третьей итерации и цикл продолжается бесконечно.
А почему тогда Int32.MinValue=-2,147,483,648 а
Int32.MaxValue=2,147,483,647? :)Вот тебе 32 бита (32-й знаковый):

0000 0000 0000 0000 0000 0000 0000

Подумай :)
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743352
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бесконечный цикл:
Можно бесконечно смотреть на огонь, как спорят мсу с хвостом,
и как мурлычет консоль..
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
   static void Main(string[] args)
        {
            int i;
            for (i = 0; i < 2-1; Console.Beep()) ;
            {
                i = i + 1;
            }

        }
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743361
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAsaxixпропущено...

Спасибо. Я давно разобрался. А по float можете что сказать?Лучше ссылку дам: " Что нужно знать про арифметику с плавающей запятой ".
Это я еще три часа назад нагуглил. Оставил на почитать по дороге домой. Спасибо. То есть такая специфика с float характерна не только для .Net?
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743365
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВskyANAпропущено...
Ахаха. Вы продолжаете писать глупости.

int (Int32) - это 32-разрядное целое число со знаком. 32-ой бит используется в качестве знакового бита (0 - число положительно, 1 - отрицательное).

Как бы двоичное представление наглядно показывает, что i становится отрицательным на третьей итерации и цикл продолжается бесконечно.
А почему тогда Int32.MinValue=-2,147,483,648 а
Int32.MaxValue=2,147,483,647? :)
Потому что 4 байта число, отрицательное и положительное может быть + 0.
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743367
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORM-ы, домы, дао перетерли, взялись за задачку, которую джуниорам на первом тесте дают...
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743383
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIORM-ы, домы, дао перетерли, взялись за задачку, которую джуниорам на первом тесте дают...
Все в жизни циклично
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743391
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saxixskyANAпропущено...
Лучше ссылку дам: " Что нужно знать про арифметику с плавающей запятой ".
Это я еще три часа назад нагуглил. Оставил на почитать по дороге домой. Спасибо. То есть такая специфика с float характерна не только для .Net?Бинго!

P.S.: что, сейчас в школах и институтах информатику не преподают?
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743417
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saxixЕвгенийВпропущено...

А почему тогда Int32.MinValue=-2,147,483,648 а
Int32.MaxValue=2,147,483,647? :)
Потому что 4 байта число, отрицательное и положительное может быть + 0.И?
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743419
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAsaxixпропущено...

Это я еще три часа назад нагуглил. Оставил на почитать по дороге домой. Спасибо. То есть такая специфика с float характерна не только для .Net?Бинго!

P.S.: что, сейчас в школах и институтах информатику не преподают?
Чего дерзкий такой?
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743429
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saxixskyANAпропущено...
Бинго!

P.S.: что, сейчас в школах и институтах информатику не преподают?
Чего дерзкий такой?Вообще я вопрос всем задал, а не конкретно тебе.
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743431
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAsaxixпропущено...

Чего дерзкий такой?Вообще я вопрос всем задал, а не конкретно тебе.
Я первый из всех ответил, или надо сразу всем было ответить. Сомневаюсь что по базовой программе типы данных по битам разбирают
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743437
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saxixskyANAпропущено...
Вообще я вопрос всем задал, а не конкретно тебе.
Я первый из всех ответил, или надо сразу всем было ответить. Сомневаюсь что по базовой программе типы данных по битам разбираютПредставление различных чисел (целых и с плавающей точкой) в компьютерах. Куда уж базовей?
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743440
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас это было как в школе, так и на первом курсе института. Ну и при изучении ассемблера мы к этому возвращались.
Вот и спрашиваю у тех, кто недавно закончил.
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743443
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAsaxixпропущено...

Я первый из всех ответил, или надо сразу всем было ответить. Сомневаюсь что по базовой программе типы данных по битам разбираютПредставление различных чисел (целых и с плавающей точкой) в компьютерах. Куда уж базовей?
В моем было...типы данных, размер памяти который занимают, как из одного формата в другой, системы исчисления. Больше не припомню. Всё зависит от преподавателя.
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743446
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAУ нас это было как в школе, так и на первом курсе института. Ну и при изучении ассемблера мы к этому возвращались.
Вот и спрашиваю у тех, кто недавно закончил.
В школе изучали "школьный алгоритмический язык". Туфта короче. Препод... старый был, видимо с книжки читал. Ни о каких типах даже и не заикался.
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743449
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saxix, понятно. Ну значит читай MSDN, там и про знак написано, и про двоичное дополнение до двух
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743452
saxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAsaxix, понятно. Ну значит читай MSDN, там и про знак написано, и про двоичное дополнение до двух
В MSDN тоже все относительно поверхностно (не во всем конечно).
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743458
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saxixskyANAsaxix, понятно. Ну значит читай MSDN, там и про знак написано, и про двоичное дополнение до двух
В MSDN тоже все относительно поверхностно (не во всем конечно).Ну что там поверхностно?

"Значения Int32 представлены в 31 бите, 32-ой бит используется в качестве знакового бита. Положительные значения представляются в виде знака и величины. Отрицательные значения представляются в виде дополнения до двух."

Читаешь, что такое дополнение до 2-х и как используется для представления чисел в компьютерах, и всё становится понятно.
...
Рейтинг: 0 / 0
Почему бесконечный цикл?
    #38743478
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю сделать отдельный топик что бы разобраться что такое системы счисления.
...
Рейтинг: 0 / 0
25 сообщений из 86, страница 2 из 4
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему бесконечный цикл?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]