LINUX.ORG.RU
ФорумTalks

Как вы относитесь к восьмеричным числам?

 ,


0

1

Как вы относитесь к восьмеричным числам вообще? Как вы относитесь к восьмеричным числам, идентифицируемым по начальному нулю? Бывало ли, что увиденное число оказывалось совсем не тем, чем кажется? Бывало ли, что программа воспринимала ваше число как восьмеричное, и оказывалось уже поздно что-то менять? Приходилось ли вам закручивать мозги узлами, постоянно переводя восьмеричные в шестнадцатеричные, или для вас это не составляет труда? Насколько часто вы с этим сталкиваетесь? Мечтаете ли вы что-то сделать с тем, кто вставил данный формат данных?

Однострочник на баше с арифметическими выражениями, если интересно :)

★★★★★

1 раз, давно, была проблема что я и программа считали число по разному. С тех пор отношусь отрицательно, мысленно перевожу их в строки -rwsr-xr-x ибо это их единственное применение.

GPFault ★★★★
()
Последнее исправление: GPFault (всего исправлений: 1)

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

imul ★★★★★
()

Как вы относитесь к восьмеричным числам вообще

Я не отношусь к восьмеричным числам в частности и к числам вообще.

Баттхёрт же совершенно непонятен. Если ты не в курсе существования восьмеричной системы счисления и не в курсе что начинающиеся с нуля числа обычно записаны в восьмеричной системе, и тем более если ты по собственному невежеству умудрился как-то накосячить - то ты просто ССЗБ.

Прежде чем чем-то пользоваться - изучи как это работает. Не по ссаным видосикам всяких дебилов на ютупчике, и не общаясь с искусственным идиотом, а читая маны и книжки, в том числе по системам счисления и принятым способам их записи.

Восьмеричные числа очень удобны в некоторых случаях, в частности, когда биты в числе сгруппированы по 3, как, например, в случае прав на файлы.

Stanson ★★★★★
()

Насколько часто вы с этим сталкиваетесь?

Ну, по работе кое-какое железо до сих пор на 1806ВМ2, так что время от времени приходится. Для системы команд PDP-11 идеальный формат, так как регистров там 8 и режимов адресации тоже 8.

Хех, напомнило, как какое-то время назад пытался (опять же, по работе) объяснить эту систему людям, не шарящим в этом вообще, для того, чтобы могли по 8-ричной индикации значения регистра понять, какие биты установлены. Я даже представить себе не мог, насколько всё это для них бессмысленно звучит. (Хотя, думаю, в случае 16-рички ситуация была бы не лучше.) Пришлось подробно расписывать, «если вторая цифра 1, 3, 5 или 7, значит, установлен бит №4» и т. д.

alegz ★★★★★
()
Последнее исправление: alegz (всего исправлений: 1)

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

rechnick ★★★
()

Периодически вижу в работе с правами файлов. Как по мне — удобно. Никогда не видел в этом какой-либо проблемы.

Хотя я лично привык к нотации u=rwx.

kaldeon ★★
()

Не очень, доставляют неудобства. В pwsh и в .Net нет простого представления чисел в восьмеричной системе.

[convert]::ToInt32(777,8)           # 511
[convert]::ToString(511,8)          # 777
[convert]::ToString(0x1ff,8)        # 777
[convert]::ToString(0b111111111,8)  # 777
dmitry237 ★★★★★
()

Я работаю в основном с 91ми, 90ми и 85, 10ми, 16ми, 8ми, 2ми системами счислений сейчас. Не уверен, что все вспомнил. Тебето какая разница какое там число, если работать с числами через апи всегда? en10(строка) en85(число)

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

LightDiver ★★★★★
()

Плохо. Я люблю десятичные, двоичные и шестнадцатеричные числа. Зачем вообще внесли восьмеричные я так и не понял. Да система с правами на файлы в линуксах мне тоже не нравится в плане её реализации. Хорошо что есть.

peregrine ★★★★★
()

Как вы относитесь к восьмеричным числам вообще?

Не люблю.

Как вы относитесь к восьмеричным числам, идентифицируемым по начальному нулю?

Ненавижу!

Бывало ли, что увиденное число оказывалось совсем не тем, чем кажется?

Бывало и похуже. В скрипте дата, если делать её с лидирующими нулями, и выгрызать отдельно для обработки дни и месяцы, оказывалось, что 08 и 09 не валидные комбинации вообще! Галя! 8 и 9 числа бекап не делаем! Молчу уж про август и сентябрь.

Мечтаете ли вы что-то сделать с тем, кто вставил данный формат данных?

DEC уже мертва, так что опоздали (
Но вот найти бы урода, сделавшего раскладку JCUKEN!!

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

Жирненько. :)

Ну если я в основном пользуюсь pwsh, то хотелось бы видеть права доступа в традиционном представлении без дергания stat. Хорошо, что есть возможность редактировать файл (ps1xml) формата вывода:

....
<TableColumnItem>
  <ScriptBlock>

    [convert]::ToString(([int] $_.UnixFileMode),8)

  </ScriptBlock>
</TableColumnItem>
....
$ [enum]::GetValues([System.IO.UnixFileMode])
None
OtherExecute
OtherWrite
OtherRead
GroupExecute
GroupWrite
GroupRead
UserExecute
UserWrite
UserRead
StickyBit
SetGroup
SetUser
dmitry237 ★★★★★
()

Вижу их в правах на файлы, там они удобные. Ещё иногда в виде экранирования типа "...\177..." - тут неудобные, но \x7F вместо него может захватить следующий символ, если он окажется цифрой, что ещё неудобнее. Как-то раз было что я выровнял несколько соседних похожих строк с каком-то коде на Си, дополнив числа нулями слева, отчего они стали парситься как восьмеричные, чего не планировалось. Теперь помню об этом и выравниваю только пробелами.

firkax ★★★★★
()

Как вы относитесь к восьмеричным числам вообще?

Ностальгически: восьмеричные были удобны во времена PDP 11.
Все позиционные числа © (wikipedia.org) одинаково неудобны и требуют обучения человеков арифметике с детского возраста.
А в натуре самые естественные – непозиционные унарные числа © (wikipedia.org) :)

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

Шелл доступен во многих дистрибутивах, с открытым кодом, как и дотнет. Очень удобный и привычный. Не путайте с Windows PowerShell, это разные шеллы, хоть и с одинаковыми корнями. Но разошлись даже на уровне синтаксиса.

Вам не нравится, ну а мне-то что с вашего мнения?

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

Шелл

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

Не путайте с Windows PowerShell, это разные шеллы, хоть и с одинаковыми корнями.

Это одинаковое говно исключительно для вендузятников приползших зачем-то на линукс. Что на венде-то не сидится? Там вон всякие Win12 скоро будут, ещё более вендовые и микрософтные, всё как вы любите.

Вам не нравится, ну а мне-то что с вашего мнения?

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

с открытым кодом, как и дотнет.

Во-первых, дотнет нихера не с открытым кодом. Пользы от того, что консольный «Hello world!» на дотнете можно запустить под линуксом нет вообще никакой. Теоретически может интересовать исключительно запуск write-only дотнетовских формошлёпных поделий, (типа гуйни для настройки каких-нибудь IP-камер или там гуйни для настройки хитровыделанных геймерских клавиатур) накостыленных вендузятниками на этом сраном дотнете и потом, разумеется, заброшенных. Но эти дотнетовские поделия на «дотнете под линукс», естественно, нихера работают, и вряд-ли когда-нибудь будут, потому что дотнет нихера не открытый - это очередная микрософтовская хуцпа, а вендузятники эту хуцпу как всегда схавали и теперь позорятся, рассказывая тут сказки про «открытый дотнет».

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

Я сталкивался с павер шеллом. Вообще задумка интересная и перспективная. Сейчас у нее лишь несколько проблем: 1) Абсолютно неадекватный перегружены синтаксис 2) Полная несовместимость версий, где хер поймешь что сечас для какой версии использовать. 3) Чуть более чем полностью неадекватная и параноидальная система безопасности, где нельзя ничего, пока не выколупаешь способы разрешить нужное. Что не всегда в принципе можно. То есть возможность теоретически есть, но на деле ее нельзя.

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

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

Вообще задумка интересная и перспективная.

Это задумка дебилов, которые вообще не понимают что такое шелл, зачем он нужен и как он должен работать.

Перспектив у этой задумки нет никаких.

Возможности там богатые.

Там нет почти никаких нужных в шелле возможностей (они даже пайпы умудрились просрать), зато есть какие-то огрызки совершенно неуместного в шелле ООП.

Использовать поверщель в качестве именно шелла АКА командной строки - практически невозможно. Скрипты же на этом писать вообще мерзко.

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

Ну серьёзно - если жуть как хочется упарываться странными шеллами, кто мешает сделать себе шеллом JS, lua или там Python? Зачем это вендовое убожество тащить на линукс? Ему место только в помойке найтись может, вместе с другими эпичнейшими фейлами корпораций.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Я работаю в основном с 91ми, 90ми и 85,

base85 какой-нибудь?

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

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

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

в виде экранирования типа «…\177…» - тут неудобные, но \x7F вместо него может захватить следующий символ, если он окажется цифрой, что ещё неудобнее

Как это «захватить»? Формат же строго 2 цифры.

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

самые естественные – непозиционные унарные

Чтобы быстро читать унарные числа больше 6, надо очень долго тренироваться :)

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

base85 какой-нибудь?

Не какой нибудь, а изобретенный мною лично еще до того, как я узнал про base85. И стандартные реализации мне так и не зашли. Так и оставил свою.

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

Просто я сравниваю с cmd. У меня винды нету, но приходится иногда пилить утилиты виндузятникам. По сравнению с cmd, павершелл это уже прогресс. Реализация просто говно. Но если целенаправленно заниматься, рано или поздно доведут до ума. И да - сейчас полностью неюзабельное.

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

Это лишь ваши эмоции… Не знаю, что в них преобладает, предвзятость или злость.

dmitry237 ★★★★★
()

Как вы относитесь к восьмеричным числам вообще?

Отрицательно

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

Нет, там любое количество цифр может быть. «\x7F123» распарсится как число 0x7F123, можешь сам проверить.

firkax ★★★★★
()

Как вы относитесь к восьмеричным числам вообще?

Так же, как и к семиричным.

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

Это уже давно не так и в новые языки такую каку тащить было нечего.

ЗЫ

А вот 36-ричная система место имеет. Чтоб латиницей и цифрами компактно коды писать. Для всяких там ключей, сидов, адресов в вебе и иже с ними. Проще же вписать YURN2 чем 58542446

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 3)

Вполне нормально отношусь. 0755, 0644 – это же самые распространённые права доступа, и это восьмеричные числа.

yars068 ★★★★★
()

Как вы относитесь к восьмеричным числам вообще?

Я к ним не отношусь.

Как вы относитесь к восьмеричным числам, идентифицируемым по начальному нулю? Бывало ли, что увиденное число оказывалось совсем не тем, чем кажется?

Было такое, как минимум один раз было, но думаю что самих случаев было больше.

Бывало ли, что программа воспринимала ваше число как восьмеричное, и оказывалось уже поздно что-то менять?

Нет.

Приходилось ли вам закручивать мозги узлами, постоянно переводя восьмеричные в шестнадцатеричные, или для вас это не составляет труда?

Не приходилось «закручивать мозги узлами».

Насколько часто вы с этим сталкиваетесь?

Очень редко.

Мечтаете ли вы что-то сделать с тем, кто вставил данный формат данных?

Нет.

anc ★★★★★
()

Малоприменимая штука, но символ 0 занимает. Иногда хочется визуально предварять число нулями, расчитывая, что оно не будет меняться в трактовке, как это бывает при форматированном выводе в printf().

aboite
()

Хотел красиво занумеровать версии прошивки, чтобы 1.01, 1.02.. Передавал VER_MAJOR/VER_MINOR через makefile.

На 1.08 компилятор сказал «error: invalid digit ‘8’ in octal constant». Не люблю восьмиричные числа.

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

Специально для тех, кто может подумать такое делать в своём проекте, прочитав этот комментарий напомню, что обычно во всяких сидах мы хотим не компактную краткую запись, а человекочитаемую (в которой трудно ошибиться, прочитав что-то неправильно). Для этого есть кодирование Crockford’s Base32. Оно (если его правильно реализовать, там буквально несколько строк) исключает ошибки с путаницей I, L, 1, O, 0, убирая эти буквы (остаются только цифры, буквы при вводе юзером просто заменяйте на цифры на этапе обработки ввода/валидации строки). Кроме того он убирает букву U чтоб не складывались забавные короткие нецензурные слова на английском. Если нецензурщина вас не пугает, можете сделать своё кодирование, тогда предлагаю убирать B, чтоб её не путали с 8.

peregrine ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)