Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Вниз

Как считать файл по битам?   Найти похожие ветки 

 
чип   (2005-05-26 20:39) [0]

Подскажите, можно ли считать файл в двоичном виде, не побайтно, а побитно, т.е. в виде 0 и 1. Имеется в виду не преобразовывать на ходу, а именно сразу читать побитно.


 
Просто Джо ©   (2005-05-26 20:39) [1]

Читать побитно нельзя.


 
KilkennyCat ©   (2005-05-26 20:44) [2]

сомневаюсь, что и побайтно можно.


 
VMcL ©   (2005-05-26 20:56) [3]

>>чип   (26.05.05 20:39)

Файлы и так в двоичном виде. Переформулируйте вопрос. Что конкретно нужно?


 
чип   (2005-05-26 21:05) [4]

VMcL
Вроде я написал понятно, что нужно - нужно прочитать файл по битам, т.е. последовательно получить значение каждого бита. Как прочитать побайтно- понятно, а можно ли по битам - вопрос.


 
Просто Джо ©   (2005-05-26 21:06) [5]


>  [2] KilkennyCat ©   (26.05.05 20:44)
> сомневаюсь, что и побайтно можно.

Физически кажись, будет читать кластерами. Или секторами(?). Не помню. Но общераспространеные высокоуровневые функции создают все-таки иллюзию побайтного чтения.
А побитно - нельзя даже теоретически, поскольку - хардверные особенности.
Вообще, присоединяюсь к  [3] VMcL ©   (26.05.05 20:56).


 
Yanis ©   (2005-05-26 21:07) [6]

To [4]
Тебе уже ответили.


 
Просто Джо ©   (2005-05-26 21:08) [7]


>  [4] чип   (26.05.05 21:05)


См. [1].
Что мешает читать как обычно, а потом уже анализировать нужные разряды в прочитанных данных?


 
чип   (2005-05-26 21:12) [8]

>  [7]
Технически ничего не мешает, но это ж лишние действия, соответственно, скорость чтения. Вопрос был в том, можно ли обойтись без этого


 
Просто Джо ©   (2005-05-26 21:14) [9]


>  [8] чип   (26.05.05 21:12)


???
Ты считаешь, что чтение побитно ускорило бы процесс?


 
чип   (2005-05-26 21:16) [10]

>  [9]
Я думаю, это было бы быстрее, нежели разбирать считанные байты по битам


 
Eraser ©   (2005-05-26 21:21) [11]

чип   (26.05.05 20:39)

Байт - наименьшая адресуемая величина памяти. Так что нельзя.


 
GLFox ©   (2005-05-26 21:25) [12]

Вообще, если речь идет о скорости, то быстрее всего читать блоками гораздо большими чем один байт, а лучше размером с кластер. Доподлинно известно, что операции в RAM производятся быстрее, чем дисковые.


 
Yanis ©   (2005-05-26 21:26) [13]

Бстрее считать один байт и "обработать его процессором" чем ~256 раз считывать с диска по одному, пускай даже и биту.


 
Yanis ©   (2005-05-26 21:29) [14]

2 [12]
Опередил :)


 
Eraser ©   (2005-05-26 21:30) [15]

GLFox ©   (26.05.05 21:25) [12]  
лучше размером с кластер. Доподлинно известно, что операции в RAM производятся быстрее, чем дисковые.


Если речь идёт о считывании из памяти, тогда уж лучше страницами памяти считывать.


 
GLFox ©   (2005-05-26 21:32) [16]

>>Eraser ©   (26.05.05 21:30) [15]
Речь идет о считывании с диска


 
VMcL ©   (2005-05-26 21:52) [17]

>>чип   (26.05.05 21:16) [10]

Наоборот.


 
SergP ©   (2005-05-26 22:24) [18]


>  чип   (26.05.05 20:39)
> Подскажите, можно ли считать файл в двоичном виде, не побайтно,
> а побитно, т.е. в виде 0 и 1. Имеется в виду не преобразовывать
> на ходу, а именно сразу читать побитно.


То, что нельзя - это одно. Но вот зачем такое могло понадобиться - вот это интерестно.?.


 
Просто Джо ©   (2005-05-26 22:26) [19]


> [18] SergP ©   (26.05.05 22:24)
Но вот зачем такое могло понадобиться
> - вот это интерестно.?.

Человек утверждает, что "так быстрее" ;))


 
SergP ©   (2005-05-26 22:50) [20]

ну насколько я себе представляю - то считывание можно производить на физическом уровне - посекторно (по 512 байт), а на уровне BIOS (или ОС???) - вообще покластерно..., Конечно могу ошибаться, но по крайней мере уж никак побайтно, тем более побитно...
А то что:


> Человек утверждает, что "так быстрее" ;))


то это пройдет со временем... :-))


 
KilkennyCat ©   (2005-05-26 23:47) [21]

На мой взгляд, ошибка не в этом. Большая ошибка здесь:

> разбирать считанные байты по битам


 
Mx ©   (2005-05-26 23:53) [22]

А какой смысл в такой операции? Че то я не въезжаю. Открыл файлик и пошел, считал блок, проанализировал биты. От этого, как мне кажется, прога ничего в скорости не потеряет. Даже наоборот, меньше возьни со всякими низкоуровневыми менеджерами и т.п.


 
Marser ©   (2005-05-27 00:03) [23]

Нельзя.


 
Marser ©   (2005-05-27 00:04) [24]


> Человек утверждает, что "так быстрее" ;))

Ага. Только за то время, пока споследовательно пройдет бит, паралельно проскочит то ли 8, то ли 16, а то ли 32 :-)


 
Просто Джо ©   (2005-05-27 00:07) [25]


>  [24] Marser ©   (27.05.05 00:04)

А это, мой юный друг, расскажите, пожалуйста, глубокоуважаемому Чипу :))
Тьху, совсем меня Керк и KilcennyCat с тона сбили :)


 
KilkennyCat ©   (2005-05-27 00:09) [26]


>  [25] Просто Джо ©   (27.05.05 00:07)


Скажи несколько раз "какашка" и все пройдет :)


 
Игорь Шевченко ©   (2005-05-27 00:22) [27]

А на диске файлы побитно лежат :P


 
Marser ©   (2005-05-27 00:23) [28]


> Игорь Шевченко ©   (27.05.05 0:22) [27] [Новое
>сообщение][Ответить]
> А на диске файлы побитно лежат :P

Ну так выковырять надо оттуда.


 
KilkennyCat ©   (2005-05-27 00:23) [29]


> [27] Игорь Шевченко ©   (27.05.05 00:22)


Уверены? :))


 
Alex Konshin ©   (2005-05-27 00:32) [30]

Почему никто не задал вопрос на засыпку: "А в каком порядке должны считываться биты?"


 
Просто Джо ©   (2005-05-27 00:32) [31]


>  [27] Игорь Шевченко ©   (27.05.05 00:22)
> А на диске файлы побитно лежат :P

Темное это дело, темное :))


 
Marser ©   (2005-05-27 00:34) [32]


> Темное это дело, темное :))

Давеча с Васьком открыли посмотреть чаво это в ейном винчестере за биты лежат. И нишиша там не было никаких битов, тока железяка какая-то...


 
KilkennyCat ©   (2005-05-27 00:39) [33]


> Давеча с Васьком открыли посмотреть чаво это в ейном винчестере
>



> "А в каком порядке должны считываться биты?"


В обратном записыванию, чтоб лишний раз голвами не дергать.


 
Просто Джо ©   (2005-05-27 00:51) [34]

Существование битов в природе наукой не доказано-с ;^)


 
KilkennyCat ©   (2005-05-27 01:27) [35]

Это [32] Marser ©   (27.05.05 00:34) - доказательство науки? :))


 
Просто Джо ©   (2005-05-27 01:28) [36]


>  [35] KilkennyCat ©   (27.05.05 01:27)

Если у Васька - докторская степень, то придется, пожалуй, согласиться-с :)


 
Strech   (2005-05-27 02:10) [37]

перефразируя анекдот:
- Считал я несколько битов с диска, подскажите, как мне вернуть их обратно?
- Вот из за таких козлов, как ты, на диске совсем битов не осталось.


 
Defunct ©   (2005-05-27 04:19) [38]

Приведу удобный, с моей точки зрения, объект для работы с битами:

unit uRegPrimitive;

interface

type

  TRegister = object
  private
     fValue     : Cardinal;
     fMax       : Cardinal;
     fCarry     : Byte;
     fWL        : Byte;

  public
     procedure   WHex( Value : Cardinal ); // Записать слово
     procedure   WBit( N, Bit: Byte);      // Записать бит номер N (N Є 0..(WL-1), Bit Є {0, !0} )
     function    RBit(N:Byte):Byte;        // Прочитать бит номер N (N Є 0..(WL-1) )
     function    RHex:Cardinal;            // Прочитать слово
     function    Carry:Byte;               // Перенос (автоматически сбрасывает при чтении)
     function    Parity:Byte;              // Четность

     constructor Init(WordLength:Byte);    // Инициализация разрядности
     destructor  Done;                     // разрушение объекта, В Delphi необязательно вызывать
  end;

implementation

uses SysUtils;

const
  {$ifndef dos}
      Platform_Type = 32;
  {$else}
      Platform_Type = 16;
  {$endif}

  {$ifdef dos}
type  Cardinal = WORD;
  {$endif}

{******************************}
{******** TRegister ***********}
{******************************}
var ZMask, AMask : Array[0..Platform_Type] of Cardinal;

constructor TRegister.Init(WordLength: Byte);
begin
 if (WordLength > 0) and (WordLength <= Platform_Type) then
    begin
       fWL := WordLength;
       fMax := AMask[WordLength] - 1;
    end
 else
    raise Exception.Create("Could not initialize register");
end;

function TRegister.Carry: Byte;
begin
 Result := fCarry;
 fCarry := 0
end;

function TRegister.Parity: Byte;
var
 i           : integer;
 ActiveCount : integer;
begin
 ActiveCount := 0;
 for i := 0 to fWL - 1 do
     if RBit(i)<>0 then
        inc(ActiveCount);

 Result := (ActiveCount and 1);
end;

function TRegister.RBit(N: Byte): Byte;
begin
 if N < fWL then
    Result := Byte((fValue and AMask[N]) <> 0 )
 else
    raise Exception.Create("index out of bound")
end;

function TRegister.RHex: Cardinal;
begin
 Result := fValue
end;

procedure TRegister.WBit(N, Bit: Byte);
begin
 if N < fWL then
    begin
      if Bit <> 0 then
         fValue := fValue or AMask[N]
      else
         fValue := fValue and ZMask[n]
    end
 else
    raise Exception.Create("index out of bound");
end;

procedure TRegister.WHex(Value: Cardinal);
begin
 if Value > fMax then
    begin
       fValue := Value and fMax;
       fCarry := 1
    end
 else
    begin
       fValue := Value;
       fCarry := 0
    end
end;

destructor TRegister.Done;
begin
end;
{******************************}

procedure Platform_Init;
var
 i : integer;
 A : Cardinal;
begin
 for i := 0 to Platform_Type - 1 do
 begin
    A := 1 shl i;
    AMask[i] := A;
    ZMask[i] := not A
 end
end;

initialization

 Platform_Init

finalization

end.


 
isasa ©   (2005-05-27 10:42) [39]

Касается дисковых операций.
Эсли абстрагироваться от всего, то
при одином обороте шпинделя (1/7200 сек) в буфере находится
содержимое одного цилиндра (1 трек х к-во поверхностей) хочеш ты того, или нет.
Вот и подумай, что быстрее, выковыривать оттуда биты, млм передать блок целиком,
и потом с ним разбираться побитово, побайтово, пословно....


 
Defunct ©   (2005-05-27 12:29) [40]

isasa ©   (27.05.05 10:42) [39]

небольшие поправки:

Чтение с диска идет побитово.
Битовые цепочки еще вдобавок кодированы (RLL).
Объем буфера ограниченный (цилиндр туда не поместится).
По SATA данные передаются побитово

ну а в остальном все как Вы и говорите.

С уважением,
def


 
Alex Konshin ©   (2005-05-27 14:02) [41]

Defunct ©   (27.05.05 12:29) [40]
isasa ©   (27.05.05 10:42) [39]
небольшие поправки:
Чтение с диска идет побитово.

большие поправки:
- чтение с поверхности диска идет побитово (на самом деле это тоже еще темное дело). Кстати, как я уже тут обращал внимание, порядок записи битов может быть отличным от того принятого в i486.  У меня стойкое подозрение, что там даже порядок байт другой (переставлены четный и нечетный байт), по крайней мере это видно по результату команды IDENTIFY.
- чтение с диска в память - блоками, никаких битов там нет, то есть нет никакой возножности выделить единичный бит.


 
Anatoly Podgoretsky ©   (2005-05-27 14:23) [42]

Еще и никакими 16*255 головками и не пахнет, точно также нельзя говорить ни о размере сектора, их количестве и количестве дорожек. Все сие темная тайна.


 
Defunct ©   (2005-05-27 14:27) [43]

Alex Konshin ©   (27.05.05 14:02) [41]

совсем маленькая поправочка:

> чтение с диска в память - блоками, никаких битов там нет, то есть нет никакой возножности выделить единичный бит.

на физ. уровне в интерфейсах SATA и USB можно выделить единичный бит при передаче инф. с диска в память.

С уважением.


 
Drakosha ©   (2005-05-27 14:37) [44]

Бит - неделимая еденица информации.
Но русские учёные....


 
KilkennyCat ©   (2005-05-27 14:40) [45]


> [43] Defunct ©   (27.05.05 14:27)


Ну да, в силу последовательности интерфейсов. Но непосредственно между контроллерами. Передача в память уже - всё.

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


 
Anatoly Podgoretsky ©   (2005-05-27 14:42) [46]

Defunct ©   (27.05.05 14:27) [43]
В последовательных интерфейсах такое возможно.
Но как тебя понимать, что существует возможно по битно передавать из контролера в программу? Иначе ни о какой битовости не стоит и говорить.


 
Игорь Шевченко ©   (2005-05-27 14:42) [47]

KilkennyCat ©   (27.05.05 14:40) [45]

Но файлы-то на блине побитно хранятся ? :))))


 
Alex Konshin ©   (2005-05-27 14:44) [48]

Defunct ©   (27.05.05 14:27) [43]
на физ. уровне в интерфейсах SATA и USB можно выделить единичный бит при передаче инф. с диска в память.

С осцилографом? Программно у тебя никакой возможности нет, так как в SATA передача происходит тоже через DMA и процессор в этом не участвует.


 
Alex Konshin ©   (2005-05-27 14:48) [49]

Игорь Шевченко ©   (27.05.05 14:42) [47]
KilkennyCat ©   (27.05.05 14:40) [45]
Но файлы-то на блине побитно хранятся ? :))))

И это не совсем так. При нынешних способах записи информации нельзя  выделить на поверхности один бит. Там реально в несколько смен фазы записывается несколько бит, причем то несколько на это несколько обычно нацело не делится. То есть можно сказать, где записана группа битов, но самого бита там не разглядишь.


 
Anatoly Podgoretsky ©   (2005-05-27 14:50) [50]

Да модуляция там по хитрее, чем голая запись битов


 
Alex Konshin ©   (2005-05-27 14:50) [51]

KilkennyCat ©   (27.05.05 14:40) [45]
А что касается побитового чтения блина, то думаю, это также возможно только на проводочке головы.

Хм, но ты-то уж должен бы знать, что это не так. Я же помню, что ты железячник, или я не прав?


 
Anatoly Podgoretsky ©   (2005-05-27 14:54) [52]

Наверно не знаком с манчестер кодом, где последовательность 01011001 совсем не означает биты 01011001


 
KilkennyCat ©   (2005-05-27 14:59) [53]


> [51] Alex Konshin ©   (27.05.05 14:50)


Да, так. но честно говоря, я лишь предполагал, что запись идет далеко не простым способ "намагничено-ненамагничено". Как в действительности обстоит дело - не знаю. не успеваю я все знать :( могу лишь догадываться. И все же, уверен, что некоей "коробочкой" можно вытащить и один бит. Но я бы ее делать не стал :)


 
Alex Konshin ©   (2005-05-27 15:01) [54]

Там еще хитрее. Там нет битов вовсе. Грубо говоря, некая последовательность смен фазы означает какую-то последовательность битов. Другая последовательность смен фаз - другую цепочку битов. А потом на это еще и накладываются корректирующий код.

Drakosha ©   (27.05.05 14:37) [44]
Бит - неделимая еденица информации.
Но русские учёные....

Вот как раз на дисках нецелые биты - в полный рост.


 
wal ©   (2005-05-27 15:05) [55]


> [44] Drakosha ©   (27.05.05 14:37)
> Бит - неделимая еденица информации.
Кто тебе такое сказал?


 
Eraser ©   (2005-05-27 15:10) [56]

KilkennyCat ©   (27.05.05 14:59) [53]

Дело в том, что записывать/считывать информацию без потерь практически невозможно. В связи с чем и применяют алгоритм с избыточностью данных [54].


 
Defunct ©   (2005-05-27 15:22) [57]

Alex Konshin ©   (27.05.05 15:01) [54]
> Грубо говоря, некая последовательность смен фазы означает какую-то последовательность битов.

Именно это и есть RLL (Run Length Limited) кодирование

> А потом на это еще и накладываются корректирующий код.
Не слышал о таком ничего.

Anatoly Podgoretsky ©   (27.05.05 14:42) [46]
> Но как тебя понимать, что существует возможно по битно передавать из контролера в программу?

Нет, не существует, я же четко написал в [40], что согласен с [39].

wal ©   (27.05.05 15:05) [55]
это аксиома.


 
Anatoly Podgoretsky ©   (2005-05-27 15:22) [58]

Eraser ©   (27.05.05 15:10) [56]
Инженеры ИБМ иначе считали, правда им быстро пришлось убедиться в обратном.


 
KilkennyCat ©   (2005-05-27 15:27) [59]

Anatoly Podgoretsky ©   (27.05.05 14:54) [52]

Наверно не знаком с манчестер кодом


Ну... не настолько я плох :) Это первое, что изучают, когда возникает проблема синхронизации последовательных данных. я делал его реализацию программным автоматом.


 
wal ©   (2005-05-27 15:33) [60]


> [57] Defunct ©   (27.05.05 15:22)
>  это аксиома.
Да ну? Тогда для начала определение бита (с точки зрения теории информации) в студию, а потом скажи тогда сколько бит в ните и дите.

С уважением.


 
Polevi ©   (2005-05-27 16:15) [61]

Бит — это минимальное количество информации, составляющее выбор одного из двух возможных вариантов


 
Anatoly Podgoretsky ©   (2005-05-27 16:18) [62]

Значит с учетов выше сказаного бардака, у нас остается, что минимальная часть информации, которую мы можем получить от системы это байт.


 
Defunct ©   (2005-05-27 16:26) [63]

wal ©   (27.05.05 15:33) [60]
> а потом скажи тогда сколько бит в ните и дите.

В чем?
Жара плохо влияет или научной фантастики начитались?


 
MacroDenS ©   (2005-05-27 16:49) [64]


Давеча с Васьком открыли посмотреть чаво это в ейном винчестере за биты лежат. И нишиша там не было никаких битов, тока железяка какая-то...

А вы перед этим винт не форматили? И еще биты живущие на поверхности блина очень боятся света и свежего воздуха.

Вот я как-то вскрывал винт, полурабочий, не формаченый, так биты в рассыпуху разбежались по всему физическому уровню. А самое интересное что я обнаружил, так это то, что биты способны организовывать семьи (обысно по 8), а так же при организации семей начинают формировать общины. Эти общины могут занимать целые сектора и более жизненого пространства физического уровня. Вот такая вот тема.

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


 
KilkennyCat ©   (2005-05-27 18:30) [65]

Polevi ©   (27.05.05 16:15) [61]

Бит — это минимальное количество информации, составляющее выбор одного из двух возможных вариантов

Значит, теоретически можно предположить существование полубита, хранящий лишь один вариант их этих двух возможных :)


 
чип   (2005-05-27 18:48) [66]

Эк вас разобрало на глубинные теории. А реально кто-нибудь сравнивал скорость на реальных задачах при разных способах чтения: байтами, кластерами и т.д.


 
SergP ©   (2005-05-27 20:03) [67]


>  [65] KilkennyCat ©   (27.05.05 18:30)
> Polevi ©   (27.05.05 16:15) [61]
>
> Бит — это минимальное количество информации, составляющее
> выбор одного из двух возможных вариантов


А если представить себе нечто представляющее собой выбор одного из трех возможных вариантов, то количество информации которое ннесет это нечто будет равно 1,5849625007211561814537389439478 бит.
Т.е. имеем нецелое число битов...


 
PAVIA ©   (2005-05-27 20:50) [68]

Я думал эта тема еще в 2 часа ночи загнулась, а нет живет.
Винчестер не может физически читать побитно. Почему это так? Да все потому, что на это понадобиться его позиционировать с точностью до бита, а это значительно снизит скорость четения из-за разгона тороможения привода дисковода и не забываем о дабавочном кодирование. По-этому диски читаются по класторно. Либы один кластер, либы несколько.
Самое быстрое - это будет считать весь файл целиком в памить. И от туда с ним работать прирост, просто калосальный нежели чем если читать по байтно.


 
Defunct ©   (2005-05-27 21:34) [69]

чип   (27.05.05 18:48) [66]

Поймите главное, HDD - блочное устройство, с него можно прочитать/записать блок данных. Максимальный размер блока определяется параметром "IDE HDD Block mode" в биосе, виндовс же подбирает размер блока самостоятельно и вам об этом не сообщает. Сам HDD еще оснащен умным контроллером, который умеет принимать решения, например при получении команды на чтение i-го сектора, контроллер может самостоятельно "догадаться" прочитать (i+1)-й сектор. Плюс имеется еще кеш (на случай повторного обращения к тому же сектору). Ну и плюс ОС имеет такие же самые механизмы, многократно ускоряющие производительность дисковой подсистемы.

Битово/байтово читать с блочного устройства -
это полная лажа, очень медленно и не нужно. Оптимальнее всего читать блоками, при этом объем блока не должен превышать объема буфера HDD и объема кеша L2 процессора. По-умолчанию объем блока равен 64kb, либо кратен одному кластеру (если кластер превышает 64kb).


 
Medved ©   (2005-05-27 21:36) [70]

Одно дело прочитать, другое дело КУДА прочитать? Где будешь хранить ОДИН бит? Мне кажется, что будет дольше обрабатывать место хранения, чем один байт.


 
Eraser ©   (2005-05-27 21:56) [71]

Defunct ©   (27.05.05 21:34) [69]
Оптимальнее всего читать блоками, при этом объем блока не должен превышать объема буфера HDD и объема кеша L2 процессора.


Это в случае т.н. PIO режима, а в режиме DMA/UDMA данные пересылаются в память почти без участия CPU, их обрабатывает DMA контроллер.


 
Alex Konshin ©   (2005-05-27 23:03) [72]

http://www.pcguide.com/ref/hdd/geom/index.htm

Про RLL:
http://www.pcguide.com/ref/hdd/geom/dataRLL-c.html
Замечу, что уже применяются модификации этого кода (например, ARLL).
Как вы видите, битов на диске просто НЕТ, есть последовательности перемен фаз, каждый определенный паттерн соответствует определенной поледовательности бит.


 
Defunct ©   (2005-05-28 01:40) [73]

Eraser ©   (27.05.05 21:56) [71]

DMA контроллер ничего обрабатывать не может, он отвечает только за "доставку" данных из устройства в ОП.


 
Defunct ©   (2005-05-28 01:41) [74]

> отвечает только за "доставку" данных из устройства в ОП.

и наоборот


 
Defunct ©   (2005-05-28 01:49) [75]

Alex Konshin ©   (27.05.05 23:03) [72]

В старых MFMках были биты в чистом виде. И на дискетках лежат биты в чистом виде до сих пор ;>


 
SergP ©   (2005-05-28 02:52) [76]


> В старых MFMках были биты в чистом виде. И на дискетках
> лежат биты в чистом виде до сих пор ;>


Все равно даже с дискеты как бы там биты не лежали, но считывать инфу можно только посекторно.

Даже с памяти инфа считываетя процессором минимум побайтно


 
KilkennyCat ©   (2005-05-29 00:53) [77]

Даже с памяти инфа считываетя процессором минимум побайтно

То есть, последовательно? :)
а я-то, дурень, вчера дуал моде запустил...


 
Marser ©   (2005-05-29 01:10) [78]


> То есть, последовательно? :)

?
Побйатно это значит последовательно одновременно по восьми каналам :-)


 
gdaujk ©   (2005-05-29 01:29) [79]

Вывод: не читаёте файлы, читайте книги :-)


 
Defunct ©   (2005-05-29 05:14) [80]

Marser ©   (29.05.05 01:10) [78]

C памятью вообще истинный дурдом. Вся память предстваляет собой матрицу строк и столбцов. Строка выбирается адресом строки и сигналом RAS, столбец адресом столбца + CAS. При подаче сигнала CAS ячейки памяти обновляются.
Конроллеру памяти постоянно приходится "пробегаться" по всем столбцам памяти для регенерации. Процессор и DMA контроллер его вечно отвлекают своми глупыми обращениями "не туда куда надо", не к тем столбцам. Посему контроллер памяти считывает по возможности как можно больше элементов одного столбца при обращении к любому элементу этого столбца и хранит его в "кеше", а процессору выдает то, что тот заказывал. При этом процессор понятия не имеет как контроллер физически адресует ту самую память, читает он что-либо или не читает(побитово, побайтово, или вообще по 256 разрядов сразу), записывает или не записывает. При записи еще более "прикольней". Продвинутые контроллеры могут для ускорения работы вообще ничего не записывать до тех пор пока не накопится приличный объем, чтобы записать сразу целый столбец.


 
Anatoly Podgoretsky ©   (2005-05-29 11:04) [81]

SergP ©   (28.05.05 02:52) [76]
Это в современных дисковых устройствах, где даже об уровне секторов говорить нельзя, а тем более о битах и байтах, полностью отсутствуе прямой доступ к данным, только через порты контроллера. Но так было не всегда, Были 8 дюямовые флоппи-диски, где чтение запись делались программно, вот там производился прямой последовательный доступ к битам. У меня до сих пор где то валяется такой дисковод.


 
isasa ©   (2005-05-29 14:02) [82]

Тема и ночью активна!
Вставлю пять копеек.
Если еще раз абстрагироваться (на уровень прикладного приложения), :))))))
то есть смысл разговаривать только о информационном потоке,
объем которого измеряется в байтах(стандарт).

Бит в случае модема, может быть довольно абстрактен,
поскольку схема "высокий уровень - низкий уровень", это уже вчера.

Кроме этого, когда поток принят(загружен в какую-то область ОП),
адресация к его содержимому - на машинное слово(32bit, 64bit) - это с точки зрения регистров пр-ра,
или как скажут компилятору;
и  все определяется скоростью выполнения

var buff: array of Cardinal; // 32 ише,   можно char, Longword
IsBitSet: boolean;

.............

IsBitSet:=($01 and buff[i]);  //char
IsBitSet:=($0001 and buff[i]);  //Cardinal;
IsBitSet:=($00000001 and buff[i]); // Longword
...........


 
isasa ©   (2005-05-29 14:06) [83]

32ише = 32 bit
sorry


 
Sphinx ©   (2005-05-29 17:02) [84]

А глупый вопрос можно ? :)
а как хранить в памяти один бит ? :)
знаю минимальное byte, boolean не подходит:
1) так как True не обязательно 1;
2) размер в памяти все равно не 1 бит :)


 
KilkennyCat ©   (2005-05-29 17:09) [85]

а как хранить в памяти один бит ? :)

Массивом полубитов.


 
Defunct ©   (2005-05-30 02:49) [86]

Sphinx ©   (29.05.05 17:02) [84]
почитайте
http://www.bytemag.ru/Article.asp?ID=998


 
wal ©   (2005-05-30 10:30) [87]


> [61] Polevi ©   (27.05.05 16:15)
> Бит — это минимальное количество информации, составляющее
> выбор одного из двух возможных вариантов

Из двух возможных и равновероятных вариантов

> [63] Defunct ©   (27.05.05 16:26)
> wal ©   (27.05.05 15:33) [60]
> > а потом скажи тогда сколько бит в ните и дите.
> В чем?
> Жара плохо влияет или научной фантастики начитались?

Жара на меня вообще не влияет, и начитался я не фантастики, а теории информации. Определения бита я от Вас так и не дождался, так что проведу ликбез.
Бит - это количество информации определяемое логарифмом по основанию два от величины, обратно пропорциональной вероятности появления того или иного состояния.
Нит и дит - это всего лишь переход от Log-2 к Log-e или Log-10.
Так что учите мат часть, а потом уже на жару все сваливайте ;).

С уважением.


 
alpet ©   (2005-05-30 13:06) [88]

Предлагаю решить автору задачу попроще - считать программным способом из оперативной памяти 1 (на крайняк 2) Байт, но не больше. Если удаться, с меня пиво. Если удаться сделать это быстрее чем считать двойное слово (DWORD) выровненное по границе 4 байта - два пива.

На лазерных дисках я слышал и вовсе информация хранится в питах...
А тему пора перемещать в конфу "Потрепаться"...


 
Завистник   (2005-05-30 13:23) [89]

Удалено модератором
Примечание: Offtopic


 
Defunct ©   (2005-05-30 13:52) [90]

wal ©   (30.05.05 10:30) [87]

Прикалисты это хорошо.
Вначале докажите, что bit делимая еденица информации, а потом  можно и крутость демонстрировать. Но не наоборот.

> Так что учите мат часть
Спасибо за заботу ;)


 
Eraser ©   (2005-05-30 14:01) [91]

Defunct ©   (30.05.05 13:52) [90]
Вначале докажите, что bit делимая еденица информации


Смотря что иметь ввиду под "делимая". Бит может принимать два значения. Соответственно должны быть частицы, которые имеют только одно знчение. Но имхо это всё бессмысенная демагогика...


 
Alex Konshin ©   (2005-05-30 14:03) [92]

Ну тебе же уже сказали.

Из того, что 1 ни на что не делится кроме себя среди натуральных чисел, еще не следует, что она вообще неделима. Аналогия ясна?
Например, в том же RRL мы имеем дробные значения колическва бит на каждую перемену фазы.
А потом задумайся о количестве информации при неравной верятности событий.
В теории сжатия, криптования дробные биты - обычное дело.


 
Alex Konshin ©   (2005-05-30 14:04) [93]

Это был ответ на
Defunct ©   (30.05.05 13:52) [90]


 
Alex Konshin ©   (2005-05-30 14:16) [94]

Кстати, в качестве исторической справки: тут еще некоторые помнят троичные машины, и они не были чем-то уникальным.


 
wal ©   (2005-05-30 14:20) [95]


> [90] Defunct ©   (30.05.05 13:52)
> wal ©   (30.05.05 10:30) [87]
> Вначале докажите, что bit делимая еденица информации, а
> потом  можно и крутость демонстрировать.

Я разве где-то крутость демонстрирую?
А доказать - легко.
Возьмите любой, достаточно большой текстовый файл (а он состоит из битов). Сожмите его архиватором - размер уменьшится. А информативность не изменится. Как думаете, за счет чего? Именно от того, что в исходном файле "принято" считать, что все состояния равновероятны, и, как следствие, биты неделимы. От этой "неделимости" следует избыточность. А потом пришел Хаффман и посчитал, что предположение о равновероятности неверное, удалил избыточность, поделил биты и размер уменьшился. А информативность не изменилась. Хотя Хаффман дает только приближение к вероятности, а не саму вероятность. Посчитайте, сколько нужно бит для хранения одного из 100 равновероятных сообщений. Только без избыточности (поскольку избыточность информативности не несет).

С уважением.


 
wal ©   (2005-05-30 14:24) [96]


> [94] Alex Konshin ©   (30.05.05 14:16)
> Кстати, в качестве исторической справки: тут еще некоторые
> помнят троичные машины, и они не были чем-то уникальным.
Хороший пример. Там "было принято считать" (а отнюдь не считалось аксиомой) неделимым трит, что составляет ~1,5849625007211561814537389439478 бит.

С уважением.


 
Grief ©   (2005-05-30 22:32) [97]

питы- углубления на диске. Бит неделим. Ибо так как он является наименьшей единицей информации. Меньше чем два значения информация нести не может. Не может же быть выбор из 1.5 или 0.4 варианта? Тема более что выбор из одного варианта будет уже не информативен.
Следовательно делить бит низзя


 
Eraser ©   (2005-05-31 00:07) [98]

Grief ©   (30.05.05 22:32) [97]
Тема более что выбор из одного варианта


А при чём тут выбор )

будет уже не информативен.

Ещё как информативен! - с абсолютной вероятностью.

Но повторюсь - это демагогика...


 
Anatoly Podgoretsky ©   (2005-05-31 00:11) [99]

Поделим биты на единицы и нолики.


 
KilkennyCat ©   (2005-05-31 00:16) [100]

не вижу препятствий делению бита.
Предположим, бит можно поделить на два полубита.
Поделили.
Теперь проверяем:
один полубит плюс один полубит равно бит.
Значит, все верно.
математике начальных классов.

P.S.
вы еще скажите, что параллельные прямые не пересекаются.


 
default ©   (2005-05-31 00:18) [101]

KilkennyCat ©   (31.05.05 00:16) [100]
а чё такое полубит?:)


 
Kilkennycat ©   (2005-05-31 00:24) [102]

default ©   (31.05.05 00:18) [101]

Это наследие инопланетян. От их валюты пошло.

Как ни смешно, если сумма двух полубитов равняется биту, то нет доказательств, что конечная единица информации - бит.
необязательно рассматривать все только с точки зрения электронной реализации.


 
default ©   (2005-05-31 00:32) [103]

Kilkennycat ©   (31.05.05 00:24) [102]
если не учитывать требования адекватности практике и смотреть на это лишь абстрактно, то да


 
Kilkennycat ©   (2005-05-31 00:37) [104]

default ©   (31.05.05 00:32) [103]

Могу и практический пример привести. В советское время, в магазине музыкальных инструметов продавались медиаторы (из них дымовуха хорошо получалась). Один медиатор стоил полкопейки. Их можно было купить только два сразу, но факт остается фактом, цена одного - полбита.


 
default ©   (2005-05-31 00:42) [105]

Kilkennycat ©   (31.05.05 00:37) [104]
неа, не корректный контрпример
копейки это условно неделимая денежная единица, бит же - принципиально
что и обуславливает то что минимальное основание у позиц-ых с/c это 2, меньше некуда ибо тогда мы не сможем числа различать(будут одинаковые обозначения для всех чисел)


 
Anatoly Podgoretsky ©   (2005-05-31 00:48) [106]

Полкопейки это не цело, а вот ноли и единица целые числа и их два.


 
Kilkennycat ©   (2005-05-31 00:52) [107]

Неа, не принципиально. Бит - это удобная единица.
Ну ладно, як електронщик, вспомню я об высокоимпендансном состоянии :)
Имеем: нолик, единичка и .... ничего! Вау! Однако, отсутствие информации, это тоже - информация. :)


 
Defunct ©   (2005-05-31 02:20) [108]

Alex Konshin ©   (30.05.05 14:03) [92]
Аналогия не верна.

wal ©   (30.05.05 14:20) [95]
Уважаемый г-н wal говорить об энтропии применительно к биту, думаю, если сказать не совсем корректно будет очень мягко сказано.

Как говорил инструктор по вождению - "развелось тут теориков понимаешь". Давайте ближе к делу. Может ли принять конкретно 0-й бит регистра AL не два значения, а скажем 1.2? Можно ли сделать ячейку памяти которая бы принимала не 2 значения а 1.5?

Ответ очевиден - нет.
Поэтому я остаюсь убежденным в том, что бит - неделимая еденица информации.

С глупой теорией о том, что оптимальной системой счисления является система с основанием E я знаком. Однако от такой теории толку с гулькин нос в реальной жизни. Транзистор умеет лишь только инвертировать сигнал.

wal ©   (30.05.05 14:24) [96]
Считать что ли разучились? трит принимает 3 значения, и равен он 1.5 бит.


Kilkennycat ©   (31.05.05 00:52) [107]
Вы электронщик, и прекрасно должны знать, что "ничего" не бывает. Если подать "ничего" на вход, то прочитается либо 0 либо 1 взависимости от того как читается с инверсией или без.


 
KilkennyCat ©   (2005-05-31 02:26) [109]

Ну вот, пришел Defunct и разрушил сказку :)


 
Defunct ©   (2005-05-31 02:28) [110]

> говорить об энтропии применительно к биту

Вот и сам выразился некорректно. Имел в виду: говорить о бите как об энтропии.


 
KilkennyCat ©   (2005-05-31 02:29) [111]

Хотя на самом деле, с точки зрения именно электронщика, третье состояние - это ничего. Ибо ноль и единица - приравниваются к диапазонам напряжения, а тут - ничего... Это уж программеры могут считать сие - нулем.


 
KilkennyCat ©   (2005-05-31 02:33) [112]


> Если подать "ничего" на вход, то прочитается либо 0 либо
> 1 взависимости от того как читается с инверсией или без.


Кстати, в одной из книжек я читал рекомендации не читать третье состояние, ибо не гарантированно, что там будет ноль.
Наверное, они тоже догадывались о полубитах :)


 
Defunct ©   (2005-05-31 02:44) [113]

KilkennyCat ©   (31.05.05 02:33) [112]

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


 
Defunct ©   (2005-05-31 02:47) [114]

> KilkennyCat
Где-то читал рекомендации не соединять 2 выхода с открытым коллектором. Книжки разные бывают ;>


 
Alex Konshin ©   (2005-05-31 03:50) [115]

Тебе же уже привели пример троичной машины.
И если ты не знаешь теории, то это не значит, что ее не существует и так не бывает.
Век живи - век учись, и ведь все равно дураком обзовут.


 
Defunct ©   (2005-05-31 04:13) [116]

Alex Konshin ©   (31.05.05 03:50) [115]

Причем здесь троичная машина? Которая к тому же себя не оправдала.
Речь о неделимости бита, в машинах с двоичной системой счисления.


 
Defunct ©   (2005-05-31 04:20) [117]

Теории бывают неудачными и неприменимыми. Примером может послужить Теория Относительности уважаемого Эйнштейна. (применение этой теории дальше фантастических рассказиков и красочных фильмов не ушло)


 
Alex Konshin ©   (2005-05-31 04:49) [118]

Насчет оправданности троичной машины - это еще вопрос. Их успешно использовали и очень широко. От троичности отказалиь отнюдь не из-за неделимости бита.

А криптография и сжатие тоже из разряда фантастики?


 
wal ©   (2005-05-31 09:19) [119]


> [116] Defunct ©   (31.05.05 04:13)
> Речь о неделимости бита, в машинах с двоичной системой счисления.
Ну вот, начались оговорки. Изначально речь в [44] шла о битах информации, причем о двоичных машинах никто не говорил. В двоичной машине бит неделим. Но это не бит информации, это бит данных, как говорят в Одессе - две большие разницы.

> Считать что ли разучились? трит принимает 3 значения, и
> равен он 1.5 бит.
Ну вот вы и сами бит поделили :) . А в трите таки не полтора бита, а больше :) Байт принимает 256 значений, значит в нем 128 бит?

С уважением.


 
wal ©   (2005-05-31 09:25) [120]


> [97] Grief ©   (30.05.05 22:32)
>Меньше чем два значения информация нести не может.

Угу. Какова вероятность встретить на улице динозавра? 50/50. Или встречу, или не встречу :) .

С уважением.


 
wal ©   (2005-05-31 09:32) [121]


> [101] default ©   (31.05.05 00:18)
> а чё такое полубит?:)

А это, как ни странно, количество информации в сообщении, априорная вероятность которого равна ~0,70710678118654752440084436210485

С уважением.


 
Игорь Шевченко ©   (2005-05-31 10:04) [122]


> С глупой теорией о том, что оптимальной системой счисления
> является система с основанием E я знаком


Мне в свое время за знание этой теории 5 баллов на экзамене поставили :) Так что, кто глупый - это еще большой вопрос. Преподаватель глупым не был.


 
KilkennyCat ©   (2005-05-31 10:26) [123]

Вот вам пример полубитов на практике - ПЗУ, которые однократно прожигались. Хоть тресни, но значение их ячеек уже не изменить, только читать. То есть, мы имеем ячейки памяти, где всегда ноль, всегда единица... :)


 
GrayFace ©   (2005-05-31 16:04) [124]

чип   (27.05.05 18:48) [66]
Эк вас разобрало на глубинные теории. А реально кто-нибудь сравнивал скорость на реальных задачах при разных способах чтения: байтами, кластерами и т.д.

Чтение/запись по-байтно в 30-300 раз дольше, чем буфером.

Alex Konshin ©   (30.05.05 14:03) [92]
Например, в том же RRL мы имеем дробные значения колическва бит на каждую перемену фазы.

При этом быт делимым не становится. Его никто не делил. Просто построили отображение из фаз в биты.

А, чтобы не гадать на куче Nescafe, кто-нибудь может дать определение делимости?

Defunct ©   (31.05.05 2:28) [110]
> говорить об энтропии применительно к биту

Вот и сам выразился некорректно. Имел в виду: говорить о бите как об энтропии.

О бите, как о функции состояния, равной тому-то в равновесных процессах? Интересно, что же вы имели в виду?

Defunct ©   (31.05.05 4:20) [117]
Теории бывают неудачными и неприменимыми. Примером может послужить Теория Относительности уважаемого Эйнштейна. (применение этой теории дальше фантастических рассказиков и красочных фильмов не ушло)

В школу! (c)


 
Defunct ©   (2005-05-31 20:21) [125]

GrayFace ©   (31.05.05 16:04) [124]

Имел в виду что нельзя бит отождествлять с количеством информации в сообщении. Сожмем мы файл или не сожмем так или иначе он будет состоять из неделимых едениц информации - бит.

Игорь Шевченко ©   (31.05.05 10:04) [122]
Глупый не преподаватель, и не тот кто разработал теорию, и не тот кто ее знает, а сама теория глупая, т.к. бесполезная.

wal ©   (31.05.05 09:32) [121]
Может хватит постить какие-то взятые от фонаря цифры?


 
Завистник   (2005-05-31 20:29) [126]

Разок меня забанили, но рискну еще раз предложить модераторам перенести этот ??? в "другую" ветку
С уважением


 
app ©   (2005-05-31 20:36) [127]

Вопрос по тематике конференции, обсуждение в основном тоже.
Твое сообщение нет.


 
Igorek ©   (2005-05-31 21:03) [128]

Defunct ©   (31.05.05 20:21) [125]
Может хватит постить какие-то взятые от фонаря цифры?

логарифмы по основанию 2 //тебе уж намекают и так и сяк


 
Defunct ©   (2005-05-31 21:31) [129]

Igorek ©   (31.05.05 21:03) [128]

Это такой новый модный стиль общения - намеками? Мне ваши намеки не нужны. Хотите чтобы вас понимали - говорите по делу, простым и понятным языком.  

И что это будет 0.707.... log2(??).


 
wal ©   (2005-06-01 09:05) [130]


> [125] Defunct ©   (31.05.05 20:21)
> wal ©   (31.05.05 09:32) [121]
> Может хватит постить какие-то взятые от фонаря цифры?

Любое из приведенных мной чисел (а не цифр) я могу обосновать формулой, но если Вам теория информации не знакома, и, кроме того, обьяснения Вы воспринимаете как упреки, то и формулы Вам ни о чем не скажут.
> [129] Defunct ©   (31.05.05 21:31)
> Это такой новый модный стиль общения - намеками?
В [87] я вроде объяснил, что такое бит, если Вам это показалось настолько тонким намеком, что Вы предпочли его не заметить, то я не виноват :)

> И что это будет 0.707....
Объясняю на пальцах:
0.5(бит)=log2(sqrt(2))
1/sqrt(2)~=0.707...

С уважением.


 
Defunct ©   (2005-06-02 00:55) [131]

> кроме того, обьяснения Вы воспринимаете как упреки,
Вовсе, нет. Я просто веду беседу в интересном для вас русле.

> то и формулы Вам ни о чем не скажут.
Скажут, вы же их не приводите, а приводите какие-то примеры со сжатием, которые кстати об информативности одного бита ничего не говорят. Приводите какие-то цифры. Может быть есть справочник, где написано:

> а чё такое полубит?:)
А это, как ни странно, количество информации в сообщении, априорная вероятность которого равна ~0,70710678118654752440084436210485



Можно ли оспорить это:
1. количество информации которое несет любой случайный бит данных всегда одинаково.
2. в двочных системах бит неделим.

> Объясняю на пальцах:
Разве это на пальцах?
0.5 бит :)
число 0.707.. :)
Вы там выше сказали что это вероятность, но ведь это нонсенс, определять количество информации через "априорную вероятность", кстати, "априорную вероятность" чего?
А вы говорите на пальцах ;>


 
Eraser ©   (2005-06-02 00:59) [132]

Kilkennycat ©   (31.05.05 00:37) [104]

Один медиатор стоил полкопейки. Их можно было купить только два сразу, но факт остается фактом, цена одного - полбита.


Ё-моё! Щас самый простенький 5 р. стОит ((


 
Eraser ©   (2005-06-02 01:15) [133]

Если придерживатся теории wal"а о "смысловой" нагрузки бита (с учётом сжатия) то что же такое тогда Байт? ;-)

И всё таки единицы измерения информации называют по количественному признаку, и следовательно по этой классификации бит - это наименьшее КОЛИЧЕСТВО информации.

0 занимает столько же памяти сколько и бит
1 занимает столько же памяти сколько и бит


 
KilkennyCat ©   (2005-06-02 01:25) [134]


> наименьшее КОЛИЧЕСТВО информации


думал, думал, и так и не придумал, где еще есть данное ограничение.
кукую единицу не возьми, к ней и кило, и нано приставить можно... какой уникальный -  бит.


 
Eraser ©   (2005-06-02 01:39) [135]

KilkennyCat ©   (02.06.05 01:25) [134]

Дэк килобиты бывают! А вот с нанобитами небольшая проблемка ;-)


 
Defunct ©   (2005-06-02 02:47) [136]

Eraser ©   (02.06.05 01:39) [135]

Так KilkennyCat как раз об этом и говорит ;>

> какой уникальный -  бит.

"Теория информации и кодирования" как раз решает этот вопрос, и можно применять понятие "нано-бит" информативности в больших последовательностях данных. Например если кодировать каждый символ русского алфавита одним байтом, то информативность одного бита при таком кодировании будет 33/256 бит. Уважаемый wal почему-то пытается оторвать Теорию Информации от Кодирования. Но эти вещи неразрывны, поэтому мы так долго с ним спорим.

Если же убрать кодирование, тогда в другой теории, например широко применяемой в "Компьютерной Арифметике" - бит неделим.


 
wal ©   (2005-06-02 10:51) [137]

> [131] Defunct ©   (02.06.05 00:55)
> > кроме того, обьяснения Вы воспринимаете как упреки,
> Вовсе, нет. Я просто веду беседу в интересном для вас русле.
Я рад, хоть мы и не нашли (пока) общий язык, но, по крайней мере не в обиде друг на друга :)
> > то и формулы Вам ни о чем не скажут.
> Скажут, вы же их не приводите, а приводите какие-то примеры
> со сжатием, которые кстати об информативности одного бита
> ничего не говорят.
Например здесь есть формулы http://en.wikipedia.org/wiki/Information_theory кстати там как раз об энтропии очень неплохо сказано.
> Можно ли оспорить это:
> 1. количество информации которое несет любой случайный бит
> данных всегда одинаково.
Можно. Только не случайный бит, а заранее определенный. Причем определена интерпретация каждого из всех (двух) значений бита. Случайным является только само значение бита.Пример, близкий к жизни.
Допустим, Вы пригласили меня в гости. Предварительно я вам ответил, что почти наверняка (с вероятностью 95%) приеду. Окончательный ответ дам за 1 час в виде бита 1-приеду, 0-не приеду. Естественно, я, как честный и обязательный человек, Вам этот бит в назначенный срок передал, а вы его приняли. Но если я передал 1, то информации Вы получили мизер, ибо и так были почти наверняка уверены в моем приезде. Но если я передал 0 - то количество информации в этом бите просто огромно, ибо я поломал Вам все планы на вечер, куча денег пропала впустую (стол накрыт, баня истоплена, девочки заказаны) и т.д. и т.п. Если же я вам заранее сказал что 100% приеду, то дополнительное напоминание об этом информации не несет вовсе, а если я после этого все же отказался, то тут уже не об информации речь, а о том, какой я гадкий обманщик, ибо не смог оценить вероятность "срыва" поездки и был очень самоуверен.
А любой случайный бит данных информации не несет вовсе, так как информация, это не только данные, но еще и соглашение об интерпритации этих данных. Хотя в этом случае любой случайный бит данных несет абсолютный ноль информации :) , тогда это утверждение не оспоришь :)
> 2. в двочных системах бит неделим.
С этим спорить сложно, но уточню - бит данных, а не бит информации.
> > Объясняю на пальцах:
> Разве это на пальцах?
> 0.5 бит :)
> число 0.707.. :)
> Вы там выше сказали что это вероятность, но ведь это нонсенс,
> определять количество информации через "априорную вероятность",
> кстати, "априорную вероятность" чего?
Априорную вероятность именно этого события из множества всех возможных в данном случае. В указанном выше примере - вероятность того, что я в гости таки приеду.
> А вы говорите на пальцах ;>
Ну извиняйте, не лектор я, как смог, так обьяснил :)

> [132] Eraser ©   (02.06.05 00:59)
> Kilkennycat ©   (31.05.05 00:37) [104]
>
> Один медиатор стоил полкопейки. Их можно было купить только
> два сразу, но факт остается фактом, цена одного - полбита.
>
> Ё-моё! Щас самый простенький 5 р. стОит ((
А еще я как-то тоже при царе Горохе два карандаша за 5 копеек покупал :)

> [133] Eraser ©   (02.06.05 01:15)
> Если придерживатся теории wal"а о "смысловой" нагрузки бита
> (с учётом сжатия) то что же такое тогда Байт? ;-)
Не моей - Колмогорова. Хотя польщен :)
А байт - это просто условность, информацию байтами не меряют, только данные. Хотя если считать байт, как нечто, принимающее 256 значений, некий 256-ит, то и информацию байтами померять можно, взяв Log256(1/p).
> И всё таки единицы измерения информации называют по количественному
> признаку, и следовательно по этой классификации бит - это
> наименьшее КОЛИЧЕСТВО информации.
> 0 занимает столько же памяти сколько и бит
> 1 занимает столько же памяти сколько и бит
Не информации, а данных, причем только в двоичных системах.

> [134] KilkennyCat ©   (02.06.05 01:25)
>
> > наименьшее КОЛИЧЕСТВО информации
>
>
> думал, думал, и так и не придумал, где еще есть данное ограничение.
> кукую единицу не возьми, к ней и кило, и нано приставить
> можно... какой уникальный -  бит.
Например количество нейтронов в ядре атома ;)

> [136] Defunct ©   (02.06.05 02:47)
> Eraser ©   (02.06.05 01:39) [135]
> ...
> "Теория информации и кодирования" как раз решает этот вопрос,
> и можно применять понятие "нано-бит" информативности в больших
> последовательностях данных. Например если кодировать каждый
> символ русского алфавита одним байтом, то информативность
> одного бита при таком кодировании будет 33/256 бит. Уважаемый
> wal почему-то пытается оторвать Теорию Информации от Кодирования.
> Но эти вещи неразрывны, поэтому мы так долго с ним спорим.
>
> Если же убрать кодирование, тогда в другой теории, например
> широко применяемой в "Компьютерной Арифметике" - бит неделим.
Я Вам выше привет пример, если не нано-, то мили-бита информации и в короткой последовательности из одного бита данных.
А кодирование - это всего лишь перенос данных с одного алфавита на другой. Количество данных при этом может измениться (как в большую, так и в меньшую сторону), количество информации останется прежним.

Еще один пример, с переводом на более понятные единицы измерения :) :
Пошел я в магазин, увидел там диск с кучей всего такого хорошего, что его цена выглядит просто смешной. Я его, естественно, купил и отнес домой. Там посмотрел все тчательно и похвалил себя за потраченные с пользой деньги.
Год спустя я уже об нем почти забыл и снова увидел в магазине этот диск. Хотел уже было купить, но потом вспомнил, что он у меня уже есть. И ценность этого диска для меня сразу упала до нуля, и возьму я его только при соответствующей (нулевой) цене, или еще дешевле (если мне еще и приплатят) :) . А почему упала ценность? Ведь ДАННЫХ как было 650Мб, так и осталось. Просто ИНФОРМАЦИИ для меня на этом диске никакой нет, а значит и платить не за что.

С уважением.


 
Defunct ©   (2005-06-03 00:11) [138]

wal ©   (02.06.05 10:51) [137]

Да видимо я был не прав, что согласился с высказыванием
Drakosha ©   (27.05.05 14:37) [44]
Бит - неделимая еденица информации.

Надо было уточнить сразу, что речь идет не об информации, а о данных. Тем, не менее, большое спасибо за приятную беседу. Было очень интересно.

:)
PS: убрать аксиому о неделимости бита (данных) и Булева алгебра вместе с компьютерной арфметикой развалится в тар-тарары..


 
KilkennyCat ©   (2005-06-04 00:58) [139]


> Булева алгебра вместе с компьютерной арфметикой развалится
> в тар-тарары..


Ну почему же развалится, просто перерастет в что-нибудь другое. Как уже здесь упоминавшаяся теория Эйнштейна изменяет классическое (если не ошибаюсь, называют Ньютоновским?) представление физики.


 
PAVIA ©   (2005-06-05 01:23) [140]

А что никто про QBIT не вспомнил?


 
KilkennyCat ©   (2005-06-05 01:29) [141]


> А что никто про QBIT не вспомнил?


не катит, он имеет два состояния, так что абсолютная классика.



Страницы: 1 2 3 4 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.9 MB
Время: 0.084 c
14-1120583400
Магнум
2005-07-05 21:10
2005.07.31
Российские железные дороги


9-1113307168
2Freak
2005-04-12 15:59
2005.07.31
Нужен сюжет


3-1119427251
Nic
2005-06-22 12:00
2005.07.31
Текстовая база ASCII


14-1121120536
Profi
2005-07-12 02:22
2005.07.31
Оцените, пожалуйста!


5-1091542196
Сашенька
2004-08-03 18:09
2005.07.31
Как узнать что мой компонент находится в run-time





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский