Upgrade to Pro — share decks privately, control downloads, hide ads and more …

byte列のbit表現を得るencodingライブラリ作った

 byte列のbit表現を得るencodingライブラリ作った

convto

May 19, 2022
Tweet

More Decks by convto

Other Decks in Programming

Transcript

  1. ͸͡Ίʹ • ࣗ෼͕࢖͍͔ͨͬͨͷͰബ͍encodingϥΠϒϥϦΛ࡞ͬͨͷͰ঺հ͠·͢ • Ϟνϕʔγϣϯ • ࢖͍ํ • etc •

    ΍Γ͍ͨ͜ͱ͕ඪ४ϥΠϒϥϦͷencoding/hexʹΊͪΌΊͪΌࣅ͍ͯΔͷͰ͔ͳΓࢀߟʹ ͯ͠·͢ • Ҏલهࣄॻ͍ͨͷͰͦͬͪʹ΋·ͱ·ͬͯ·͢ • https://convto.hatenablog.com/entry/2022/05/08/160157
  2. ੜͷbitදݱ஌Γ͍ͨͱ͖͋Δ • ৽͍͠encodingௐ΂ͯΔͱ͖ͱ͔͸όΠφϦͲ͏ͳͬͯΔͷ͔ؾʹͳΔ • byte੔ྻ͞Εͯͳ͍ͱ͖ʹhexͩͱ೴಺Ͱbitม׵ͯ͠ઌ಄Nbit͕ͳΜ΅Ͱɺޙଓͷbit͕ͳΜ΅Ͱ…ͱͳΓ໘౗ͳͷ ͰbitͰΈΕΔͱخ͍͠ • `xxd -b` ͱ͔ͰΈΕΔ͕GoϓϩάϥϜ͔Βॊೈʹ࢖͍͍ͨ

    • forϧʔϓͰ `fmt.Printf("%08b", src[i])` Έ͍ͨͳײ͡ʹ͢Δͷ΋͋Γ͚ͩͲҎԼͷ՝୊͕͋Δ • io͕ॊೈͰͳ͍ • ૉ๿ʹfmtύοέʔδʹґଘͯ͠ΔͷͰͦͦ͜͜ίετֻ͕͔Γͦ͏ • ग़ྗ͕ζϥʔͱͰ͖ͯͯಡΈͮΒ͍ɻdebug༻్ͳΒ͍͍ײ͡ʹग़ྗ͍ͨ͠ • ௐ΂ͨൣғͩͱͦ͏͍͏ظ଴ΛຬͨͤΔύοέʔδ͸ͳͦ͞͏ͩͬͨͷͰ࡞ͬͨ(bit୯Ґioͱ͔͸͋Δ)
  3. σβΠϯ͸ encoding/hex Λࢀߟʹ͠·ͨ͠ • Encode/Decodeʹ͘Θ͑ioͷαϙʔτͱdumpग़ྗ • ͭ͡͸ encoding/hex ͸objdump૬౰ͷDumpΛαϙʔτͯ͠Δ •

    https://pkg.go.dev/encoding/hex#example-Dump • hex͸base64ͳͲͱҧͬͯ1char͋ͨΓ4bitදݱͰ8ͷ໿਺͔ͩΒbyte ੔ྻΛؾʹ͢Δඞཁͳ͍ͷ΋ࣅ͍ͯΔ