LINUX.ORG.RU

Отнимать от числа 2.0 - 0.1 до 0.0

 ,


0

1

начало 2.0
отнимаем 0.1 | 1.9
отнимаем 0.1 | 1.8
отнимаем 0.1 | 1.7
отнимаем 0.1 | 1.6
отнимаем 0.1 | 1.5
<-----скип------>
отнимаем 0.1 | 0.5
отнимаем 0.1 | 0.4
отнимаем 0.1 | 0.3
отнимаем 0.1 | 0.2
отнимаем 0.1 | 0.1
отнимаем 0.1 | -6.38378239159e-16
конец = -6.38378239159e-16

В условиях:
Начальное число 2.0
Отнимаем от него 0.1
Отнимать до 0.0

#!/usr/bin/python
# -*- coding: utf-8 -*-

nach = [0,2.0]
ch_1 = [0,0.1]

print 'отнимать:',ch_1[1]
if nach[0] == 0:
	while nach[1] > 0.0:
		nach[1]=nach[1]-ch_1[1]
		print 'отнимаем',ch_1[1], '|', nach[1]
print 'Конец:', nach[1]

ТЫ КТОАААА?

-6.38378239159e-16

ЧЯДНТ?



Последнее исправление: VictimOfLoveToLinux (всего исправлений: 4)

Ответ на: комментарий от xorik

Я же не ракеты проектирую. Мне пока быдлознаний хватает. Как только что-то нужно больше моего порога я начинаю курить маны.

VictimOfLoveToLinux
() автор топика
Ответ на: комментарий от VictimOfLoveToLinux

Байты разные бывают

Если однозначно 8 бит — то лучше называть «октет»

theNamelessOne ★★★★★
()
Ответ на: комментарий от unsigned

В байте обычно 8 бит, но может быть хоть 108.

Кажется, кто-то путает байт, char и наименьшую адресуемую единицу.

tailgunner ★★★★★
()

ЧЯДНТ?

Используешь для типично целочисленной задачи float.

Микроскопом всегда было неудобно.

deb
()
Ответ на: комментарий от unsigned

Не восьмибитные байты как-то уже и закончились. подавляющее большинство людей, когда говорят байт, подразумевают 8 бит. И только отдельные маргинальные личности знают различие понятий «единица хранения» и «единица адресации» и ещё более маргинальные применяют не восьмибитные байты в работе.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от tailgunner

Я почти цитирую C99, 3.6.3. А в чём разница между char и байт?

3.6 1. byte
addressable unit of data storage large enough to hold any member of the basic character set of the execution environment.
3. NOTE 2 A byte is composed of a contiguous sequence of bits, the number of which is implementation-defined.

6.2.5.3 An object declared as type char is large enough to store any member of the basic execution character set.

А байт в моих учебниках и определялся как наименьшая адресуемая единица памяти.

unsigned ★★★★
()
Ответ на: комментарий от Dark_SavanT

Я пользуюсь только восьмибитными байтами, но определение байта, афаик, всё еще не включает в себя количество бит.

unsigned ★★★★
()
Ответ на: комментарий от unsigned

А байт в моих учебниках и определялся как наименьшая адресуемая единица памяти.

Даже когда он передается по сети или является, например, регистром устройства?

tailgunner ★★★★★
()
Ответ на: комментарий от unsigned

Я почти цитирую C99, 3.6.3.

Ну, например, из Википедии:

The size of the byte has historically been hardware dependent and no definitive standards existed that mandated the size. The de facto standard of eight bits is a convenient power of two permitting the values 0 through 255 for one byte. With ISO/IEC 80000-13, this common meaning was codified in a formal standard

Заметь «codified in a formal standard».

Можешь указать хоть одну платформу, где адресуемая единица не 8 бит _и_ при этом ее называют байтом?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Можешь указать хоть одну платформу, где адресуемая единица не 8 бит _и_ при этом ее называют байтом?

Байт вообще машинно-зависим.Знакомый учился на военной кафедре во времена СССР и там у какого-то вычислителя в РЛС был байт 12 бит (по штатной документации!) Студенты называли его «военный байт». Сейчас конечно таких примеров я не знаю.

capricorn20
()
Ответ на: комментарий от capricorn20

Байт вообще машинно-зависим.

Внимание, вопрос: следует ли называть байтом наименьшую адресуемую единицу машины с побитовой адресацией? %)

Знакомый учился на военной кафедре во времена СССР и там у какого-то вычислителя в РЛС был байт 12 бит (по штатной документации!)

Ага, 20+ лет назад в каком-то уже тогда старом советском мануале было написано, что байт может достигать 12 бит %) Верю, было. Но даже тогда такие корявые байты чаще называли «словами».

tailgunner ★★★★★
()
Ответ на: комментарий от ABW

Д. Кнут ... MIX?

1969 год? Да, тогда еще не договорились о многих вещах.

tailgunner ★★★★★
()

Интересно другое... Какого х... в языках программирования IEE754 является встроенным типом? Так часто выпадает что-то считать с погрешностью? А вот точное представление вещественных чисел и не в каждой стандартной библиотеке сыщешь.

ИЧХ те, кому нужно делать серьезные расчеты, «встройку» все-равно не юзают... А вот деньги в виде double - это да, сплошь и рядом.

Macil ★★★★★
()
Ответ на: комментарий от Macil

Какого х... в языках программирования IEE754 является встроенным типом?

Ну я знаю язык, в котором результатом деления 1 на 2 будет не 0.5, не 1 и не 0, а 1/2 ;)

yyk ★★★★★
()
Ответ на: комментарий от tailgunner

Даже когда он передается по сети или является, например, регистром устройства?

Я бы (осторожно) сказал, что в эти моменты нет никаких байт, есть биты/октеты. Не зря ведь скорость передачи данных по сети меряют в бит/с.

Заметь «codified in a formal standard».

Я почитал архив ЛОРа на эту тему - страшнее только вопрос, чему равен NULL...

Я так понимаю твою позицию:

байт = октет - восемь бит;

байт в стандарте си - это, фактически, не байт, а char;

минимально адресоваться может сколько угодно бит в зависимости от архитектуры, и это может быть не байт, а слово.

Верно? Но всё равно в разных источниках попадаются все три определения. ISO, СИ и ГОСТ за 8 бит, но C - это тоже ISO. Причём даже в C11 остался прежний байт, а учитывая тонну сишного кода, его стандарт может и перевесить. В общем, терминологическая путаница будет ещё долго.

unsigned ★★★★
()
Ответ на: комментарий от Macil

Ы? Численные методы используют в основном IEEE754. А используют их за то, что они быстрые.

anonymous
()
Ответ на: комментарий от tailgunner

Когда байт передаётся по сети, он от этого не становится ни больше ни меньше битным. По крайней мере в известных мне сетевых применениях

Dark_SavanT ★★★★★
()
Ответ на: комментарий от dave

Точно не помню, но возможно, что точное десятичное представление было в ПЛ/1.

Было, да. Но там архитектура (IBM/3[67]0) поддерживала десятичную арифметику.

tailgunner ★★★★★
()
Ответ на: комментарий от unsigned

Даже когда он передается по сети или является, например, регистром устройства?

Я бы (осторожно) сказал, что в эти моменты нет никаких байт, есть биты/октеты

IRL ни разу не слышал термина «октет» :)

В общем, терминологическая путаница будет ещё долго.

На самом деле, ее уже нет. AFAIK, никто не называет не-8-битовые сущности «байтами» (по крайней мере из тех, кто реально имеет с ними дело).

tailgunner ★★★★★
()
Ответ на: комментарий от Macil

Какого х... в языках программирования IEE754 является встроенным типом?

Потому, что он в большинстве процессоров реализован аппаратно? Хотя, возможна обратная причинно-следственная связь.

Kosyak ★★★★
()
Ответ на: комментарий от tailgunner

Но даже тогда такие корявые байты чаще называли «словами».

Ничего подобного. Вот взять PDP-10: слово - 36 бит, байт - произвольной (но не больше 36) длины последовательность бит, возможно, даже пересекающая границу слов. Чаще прочих использовались шестибитные.

anonymous
()
Ответ на: комментарий от anonymous

Но даже тогда такие корявые байты чаще называли «словами».

Ничего подобного. Вот взять PDP-10:

На PDP-10 не работал, но Вики имеет сказать

«36-bit word length»

а то, что ~40 лет назад кому-то было прикольно определить «байт» как «последовательность бит длиной от 1 до 36» - так это просто исторический курьез.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Длина 8 - это тоже исторический курьез, не лучше и не хуже.

Курьез был в том, что на PDP-10 длина «байта» была переменной. Конечно, 8 не лучше другой приличной степени двойки, но, по крайней мере, это константа, о которой договорились.

tailgunner ★★★★★
()
Ответ на: комментарий от Macil

А вот точное представление вещественных чисел и не в каждой стандартной библиотеке сыщешь.

Представь мне точно \pi.

aedeph_ ★★
()
Ответ на: комментарий от xorik

Вот и выросло поколение программистов на высокоуровневых языках...

Зато какое банковское ПО пишут на яве!

pv4 ★★
()
Ответ на: комментарий от theNamelessOne

Каждое число представлено с некоторой ошибкой

Так уж и каждое. Попробуй повычитать 0,125.

anonymous
()
Ответ на: комментарий от anonymous

Да, выразился неверно. До этого я сказал правильно:

Потому что невозможно абсолютно точно представить произвольное вещественное число в таком представлении

theNamelessOne ★★★★★
()
Ответ на: комментарий от pv4

Зато какое банковское ПО пишут на яве!

Зато какое банковское ПО пишут на PL/SQL!!! //fixed

Macil ★★★★★
()

Да сколько можно, каждый месяц подобные треды вижу.

pevzi ★★★★★
()
Ответ на: комментарий от VictimOfLoveToLinux

s/я начинаю курить маны/бегу на лор/

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.