Portál AbcLinuxu, 11. května 2025 04:34

Dotaz: generování řetězců v 16kové soustavě

21.6.2021 19:41 Rokle
generování řetězců v 16kové soustavě
Přečteno: 726×
Odpovědět | Admin
Dobrý den, potřeboval bych v shellu generovat (vypsat) postupně VŠECHNY hexadecimální řetězce o délce 8 znaků. Má někdo nápad jak to udělat - popřípadě aspoň nasměrovat jakým příkazem? Děkuji

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.6.2021 23:19 BFU
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co treba: $ seq 0 4294967295 | xargs -i printf "%08x\n" {}

btw seq je gnu, bsd nema seq, ale je tam nejaka obdoba.
23.6.2021 22:08 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
…v shellu…

Ehm.

23.6.2021 23:02 BFU
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
No, tohle je shell, co se vam tam nezda ?

btw. bsd ma jot(1), viz https://www.freebsd.org/cgi/man.cgi?jot(1)
24.6.2021 06:10 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Pravdepodobne sa mu nezdá len jedna drobnosť: Bez externých príkazov to v shelli nepôjde:
$ dpkg -S `type -p seq xargs printf`
coreutils: /usr/bin/seq
findutils: /usr/bin/xargs
$
Ale to je jedno, rozoberať riešenie domácej úlohy tesne pred prázdninami je blbosť.
24.6.2021 09:45 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Ale Petru, ale naprogramovať to ide aj bez tých príkazov rýdzo v BASH. Len popremýšľaj.
debian.plus@protonmail.com
24.6.2021 13:19 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
To ja viem že obyčajný cyklus je súčasťou shellu, aj s formátovaným výpisom. Ale jedná sa o iné riešenie ako to z tohoto vlákna.

Popremýšľaj, zamysli sa a možno pochopíš ten rozdiel.
vencour avatar 21.6.2021 23:19 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Odpovědět | | Sbalit | Link | Blokovat | Admin
Opravdu je to úkol?
Co tam vidím ... definovat vstupní hodnoty, zvolit algoritmus nebo metodu, zjistit způsob, jak pracovat s daty, umět ovládat nějaké programové konstrukce ...
Příkaz? Třeba ... man, další help ... (v jednom vtipu jsem asi včera viděl ... "jaké je kouzelné slovo, které přivolá pomoc?" a odpověď tam byla "sudo" :-) - V otázce taky nic takového nebo podobného nevidím ...
Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
Gréta avatar 22.6.2021 00:48 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Odpovědět | | Sbalit | Link | Blokovat | Admin

crunch hele bude asji jakoby víc rychlejší :D ;D

crunch 8 8 0123456789abcdef
Zelená energetická soustava založená na obnovitelnejch zdrojích energie versus realnej svět 🤡🇪🇸
24.6.2021 01:05 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dobrý den, potřeboval bych…

Nepotřeboval. Dostal jsi to za domácí úkol a rádoby-anonymně podvádíš.

…v shellu…

Ve kterém shellu? Aspoň tohle by se hodilo napsat.

…VŠECHNY…

FAKT VŠECHNY??? NO TOHLE!!! TAK TO BUDOU ASI ČÍSLA OD 0 DO 232, CO???

Má někdo nápad jak to udělat - popřípadě aspoň nasměrovat jakým příkazem?

Pokud to má být v Bashi, spíš než nějaký jeden „příkaz“ jsou podstatné řídicí struktury Bashe a něco vestavěného, třeba printf. Pokud by šlo o volání příkazu (ve smyslu spouštění procesu) na každé číslo z 4294967296, to by fakt trvalo setsakra dlouho. (Ne že by to netrvalo setsakra dlouho už tak!)

for ((i = 0; i <= 0xffffffff; ++i)); do printf '%08x\n' "$i"; done

Jo a kdyby ses náhodou chtěl dočkat, pak zkrátka takovou věc nedělej v shellu, nýbrž v nějakém rozumném jazyce:

#include <cstdint>
#include <iostream>

template<size_t N>
struct NumberString {
  NumberString() {
    for (size_t i = 0; i < N; ++i) buffer[i] = '0';
    buffer[N] = '\n';  // Who cares about Shitdows?
    buffer[N + 1] = '\0';
  }

  void printAll(size_t level = 0) {
    if (level == N) {
      std::cout << buffer;
    } else {
      char *const byte{buffer + level};
      for (size_t i{0}; i < 16; ++i) {
        *byte = digits[i];
        printAll(level + 1);
      }
    }
  }
 private:
  char buffer[N + 2];
  static constexpr char digits[16]{
      '0', '1', '2', '3', '4', '5', '6', '7',
      '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
};

constexpr size_t n_digits{8};

int main() {
  NumberString<n_digits> number;
  number.printAll();
  return 0;
}

Tohle^^^ na mém fosilním notebooku doběhne za 4 minuty, pokud člověk netrvá na výpisu na terminál.

(Jo a kdo si myslí, že tam nacpe std::endl a bude king, ten velmi rychle zjistí, že zpomalení bude 20-násobné. (Bo automatycky flush(), řekli by v Ostravě.))

24.6.2021 12:02 X
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
To mu fakt pomuze..
27.6.2021 07:37 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě

Cílem naopak je, aby mu to nepomohlo. Aby se z něj stal další neúspěšný podvodníček.

Právě proto všem takovým podvodníčkům jakože s chutí a rád „radím“ a směju se, když se nad tím ostatní durdí.

Jednoduchá otázka: Chceš, aby takový člověk s tebou jednou pracoval v týmu? Ne? Tak mu poraď! (Jinak mu budeš muset radit v době, kdy už nebudeš mít na výběr.)

Tak. Teď jsem prozradil celé tajemství.

27.6.2021 10:05 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
A výsledkem toho postupu je, že tazatel
a) získá nejakou zručnosť/znalost, a nebo
b) si jen udelá fajfku a bude si mnout ruce jak zas našel někoho, kdo udělá práci za nej a on získá pochvalu?
Gréta avatar 28.6.2021 11:55 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Řešení 1× (Michal Kubeček)
24.6.2021 18:44 luky
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Odpovědět | | Sbalit | Link | Blokovat | Admin
A='{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}'
eval echo 0x$A$A$A$A$A$A
25.6.2021 07:22 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Hezký.
26.6.2021 03:48 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě

Hezčí:

A='{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}'
eval echo 0x$A$A$A$A$A$A$A$A

Jo. A pak to náležitě trvá.

29.6.2021 12:57 luky
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Kdyz si dam delku 8 u printf, tak tam je taky jen 6 cislic. Zkus si printf '%#08x' 1
Gréta avatar 25.6.2021 12:00 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě

toje rychlý až se jako divim :O :O

26.6.2021 03:46 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě

Ale hovňajs.

Má tam 6 znaků místo 8. Jo, tak to je královsky rychlé, když je to 256× rychlejší, co?

26.6.2021 04:46 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě

No, vlastně 341.̅3×, když se to tak vezme. To už ať si spočítá každý sám.

Gréta avatar 28.6.2021 11:53 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
25.6.2021 15:20 BFU
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Kulervouci
26.6.2021 03:46 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě

dva znaky rvoucí ≠ kulervoucí

26.6.2021 07:48 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Zdravý chlap ich má práve toľko.
27.6.2021 03:52 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě

Jasně, a těch šest dalších odpracuje. No jo. Tenhle „potenciál“ je skvělé využít, ale hlavně (hlavně!) tomu probůh nedávat volební právo.

27.6.2021 08:10 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě
Tento tvoj typ anatómie asi nepochádza ani od cicavcov. Ale možno je to vedľajší efekt IPv6 over 5G.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.