Portál AbcLinuxu, 29. října 2025 23:40


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

21.6.2021 19:41 Rokle
generování řetězců v 16kové soustavě
Přečteno: 727×
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: 65 | 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: 65 | 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.
🇹🇬 avatar 22.6.2021 00:48 🇹🇬 | 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
stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
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?
🇹🇬 avatar 28.6.2021 11:55 🇹🇬 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě

třeba to ani jako žádnej domácák neni :O :O

stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
Ř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
🇹🇬 avatar 25.6.2021 12:00 🇹🇬 | 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

stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
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.

🇹🇬 avatar 28.6.2021 11:53 🇹🇬 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: generování řetězců v 16kové soustavě

toje rychlý žese už nedivim :D :D ;D ;D

stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
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: 65 | 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: 65 | 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.