মার্ক ওয়াটনির জন্য একটি ASCII-to-hex টেবিল তৈরি করুন


25

এই SciFi.SE প্রশ্ন দ্বারা অনুপ্রাণিত।


পটভূমি (মাইনর স্পয়লার সহ):

দ্য মার্টিয়ান মুভিতে নায়ক মার্ক ওয়াটনি ASCII চরিত্রগুলির হেক্সাডেসিমাল মানগুলি সন্ধান করতে একটি ASCII টেবিল ব্যবহার করেছেন যাতে তিনি পৃথিবীতে ফিরে যোগাযোগের চেষ্টা করতে পারেন *

চ্যালেঞ্জ

কোনও ইনপুট না দিয়ে নিম্নলিখিত ASCII টেবিলটি ঠিক এভাবে আউটপুট করুন:

Dec Hex    Dec Hex    Dec Hex  Dec Hex  Dec Hex  Dec Hex   Dec Hex   Dec Hex  
  0 00 NUL  16 10 DLE  32 20    48 30 0  64 40 @  80 50 P   96 60 `  112 70 p
  1 01 SOH  17 11 DC1  33 21 !  49 31 1  65 41 A  81 51 Q   97 61 a  113 71 q
  2 02 STX  18 12 DC2  34 22 "  50 32 2  66 42 B  82 52 R   98 62 b  114 72 r
  3 03 ETX  19 13 DC3  35 23 #  51 33 3  67 43 C  83 53 S   99 63 c  115 73 s
  4 04 EOT  20 14 DC4  36 24 $  52 34 4  68 44 D  84 54 T  100 64 d  116 74 t
  5 05 ENQ  21 15 NAK  37 25 %  53 35 5  69 45 E  85 55 U  101 65 e  117 75 u
  6 06 ACK  22 16 SYN  38 26 &  54 36 6  70 46 F  86 56 V  102 66 f  118 76 v
  7 07 BEL  23 17 ETB  39 27 '  55 37 7  71 47 G  87 57 W  103 67 g  119 77 w
  8 08 BS   24 18 CAN  40 28 (  56 38 8  72 48 H  88 58 X  104 68 h  120 78 x
  9 09 HT   25 19 EM   41 29 )  57 39 9  73 49 I  89 59 Y  105 69 i  121 79 y
 10 0A LF   26 1A SUB  42 2A *  58 3A :  74 4A J  90 5A Z  106 6A j  122 7A z
 11 0B VT   27 1B ESC  43 2B +  59 3B ;  75 4B K  91 5B [  107 6B k  123 7B {
 12 0C FF   28 1C FS   44 2C ,  60 3C <  76 4C L  92 5C \  108 6C l  124 7C |
 13 0D CR   29 1D GS   45 2D -  61 3D =  77 4D M  93 5D ]  109 6D m  125 7D }
 14 0E SO   30 1E RS   46 2E .  62 3E >  78 4E N  94 5E ^  110 6E n  126 7E ~
 15 0F SI   31 1F US   47 2F /  63 3F ?  79 4F O  95 5F _  111 6F o  127 7F DEL

চূড়ান্ত নিউলাইন optionচ্ছিক। নতুন লাইনের সাথে, আউটপুটটির এমডি 5 হয় 58824a1dd7264c0410eb4d727aec54e1। ছাড়া, এটা হয় 41b6ecde6a3a1324be4836871d8354fe

যদি এটি সহায়তা করে তবে asciiলিনাক্স কমান্ডের উপরের অংশটি উপরের ব্যবহারের তথ্য সহ এটি আউটপুট । আপনি নিম্নলিখিতটি উবুন্টুতে পুনরায় তৈরি করতে পারেন:

sudo apt-get install ascii
ascii | tail -n+7

আপনি আপনার উত্তরগুলিতে ইউটিলিটি (বা অনুরূপ) ব্যবহার করতে পারবেন নাascii

কারণ এএসসিআইআই অক্ষরগুলি ইতিমধ্যে এই মূর্খ মেমের সাথে যথেষ্ট !


আমি সচেতন এটি এএসসিআইআই টেবিলটি মুদ্রণের অনুরূপ , তবে আমি বিশ্বাস করি যে এই প্রশ্নের আউটপুটটির ফর্ম্যাটটি উল্লেখযোগ্যভাবে আরও জটিল এবং একটি পৃথক প্রশ্নের ওয়ারেন্ট দেয়।


* দ্রষ্টব্য, আমি এখনও এই সিনেমাটি দেখিনি।


1
তাহলে প্রোগ্রামটি হার্ড-কোডড হতে পারে ??
তানমাথ

@ ট্যানম্যাথ আপনি কি asciiউত্তরগুলিতে ইউটিলিটি ব্যবহারের কথা উল্লেখ করছেন - যদি তাই হয় তবে আমার সম্পাদনা দেখুন - এটি অনুমোদিত নয়।
ডিজিটাল ট্রমা

4
বোকা মেমের জন্য +1 ... তবে কেন কোনও ইনপুট না দিয়ে আরেকটি চ্যালেঞ্জ?
edc65

2
@ msh210 কোড-গল্ফ ট্যাগটি অন্যথায় না বর্ণিত থাকলে বাইটে সংক্ষিপ্ত কোডটি বোঝায় । আমি DRY নীতিটি প্রয়োগ করার চেষ্টা করছি ;-)। একইভাবে, অন্যথায় বর্ণিত না হলে, এন্ট্রিগুলি প্রোগ্রাম বা ফাংশন হতে পারে
ডিজিটাল ট্রমা

1
হোয়াইটস্পেস ট্রলিং করা আবশ্যক ঠিক যেমন প্রদর্শিত হবে? (প্রথম লাইনে অর্থাত 2 স্পেস, অন্যের উপর কিছুই নেই)
লেভেল রিভার সেন্ট

উত্তর:


19

জাভাস্ক্রিপ্ট (ES6), 323 332 353

সম্পাদনা করুন আমি এটিকে কিছুটা ছোট করতে পেরেছি
পদক্ষেপ ১, এটি বিশ্বাস করুন বা না করুন, ১ cha টি অক্ষরের অ্যারে ব্যবহার করা toString+ toUpperCase
ধাপ ২ এর চেয়ে কম হয় , .mapপরিবর্তে ব্যবহারের forজন্য ঘুরপাক খায়, যাতে আমি এগুলি সমস্তকে একটি একক অভিব্যক্তি ফাংশনে রূপান্তর করতে পারি, কনসোল.লগ এবং / অথবা প্রত্যাবর্তন।

কোল ক্যামেরনের কাছ থেকে ধার নেওয়া 0 টি স্থানে 2 স্থানান্তরিত ডিল সম্পাদনা করুন

H=x=>(x=[...'0123456789ABCDEF']).map((d,r)=>x[S='slice'](0,8).map(c=>(o+=`   ${w=c*16+r} ${c+d} `[S](-z)+("DELNULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US ".substr((w+1&127)*3,3)||String.fromCharCode(w)),z=c<5?8:9,'Dec Hex   '[S](0,c<2?z+2:z)),o+=`
`,z=7).join` `,o='')[0]+o

MD5: 41B6ECDE6A3A1324BE4836871D8354FE

পিক্সেল নিখুঁত, আমি বলব

কম গল্ফড

H=x=>(
  x=[...'0123456789ABCDEF'],
  a="DELNULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US ",
  o='', // the string o will contain the body (16 rows)
  x.map((d,r)=> ( // main loop, r is thr row number, d is the second hex digit to print
    o+=`\n`, z=7,
    x.slice(0,8).map(c=> // loop on 8 columns, c is both column number and digit to print
      (
        // append the column to o
        o += `   ${w=c*16+r} ${c+d} `.slice(-z) + (a.substr((w+1&127)*3,3)||String.fromCharCode(w)), 
        z=c<5?8:9, // adjust the column size
        'Dec Hex   '.slice(0,c<2?z+2:z) // column head, right size
      ) // the .map result is the 8 columns heading
    ).join` ` // join the heading in a single string
  ))[0] // any element of the result map is the heading
  + o // concatenate the body
)

পরীক্ষা

H=x=>(x=[...'0123456789ABCDEF']).map((d,r)=>x[S='slice'](0,8).map(c=>(o+=`   ${w=c*16+r} ${c+d} `[S](-z)+("DELNULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US ".substr((w+1&127)*3,3)||String.fromCharCode(w)),z=c<5?8:9,'Dec Hex   '[S](0,c<2?z+2:z)),o+=`
`,z=7).join` `,o='')[0]+o

/* TEST */ 
console.log=x=>O.textContent=x

console.log(H())
<pre id=O></pre>


11

সি, 307 310 308 307 305 বাইট

অবশেষে 100% কাজ করছে।

i,j,z=127;main(){for(;j++<8;)printf("Dec Hex%*s",j<3?4:j<6||j>7?2:3,"");for(;i<143&&putchar(!i|i>z?10:32);i+=16)i=i>z?i%z:i,printf("%*d %02X ",i>95?4:3,i,i),i%z>31?putchar(i):printf("%.3s","DELNULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US "+(i+1)%128*3);}

আউটপুট:

$ ./a.out
Dec Hex    Dec Hex    Dec Hex  Dec Hex  Dec Hex  Dec Hex   Dec Hex   Dec Hex
  0 00 NUL  16 10 DLE  32 20    48 30 0  64 40 @  80 50 P   96 60 `  112 70 p
  1 01 SOH  17 11 DC1  33 21 !  49 31 1  65 41 A  81 51 Q   97 61 a  113 71 q
  2 02 STX  18 12 DC2  34 22 "  50 32 2  66 42 B  82 52 R   98 62 b  114 72 r
  3 03 ETX  19 13 DC3  35 23 #  51 33 3  67 43 C  83 53 S   99 63 c  115 73 s
  4 04 EOT  20 14 DC4  36 24 $  52 34 4  68 44 D  84 54 T  100 64 d  116 74 t
  5 05 ENQ  21 15 NAK  37 25 %  53 35 5  69 45 E  85 55 U  101 65 e  117 75 u
  6 06 ACK  22 16 SYN  38 26 &  54 36 6  70 46 F  86 56 V  102 66 f  118 76 v
  7 07 BEL  23 17 ETB  39 27 '  55 37 7  71 47 G  87 57 W  103 67 g  119 77 w
  8 08 BS   24 18 CAN  40 28 (  56 38 8  72 48 H  88 58 X  104 68 h  120 78 x
  9 09 HT   25 19 EM   41 29 )  57 39 9  73 49 I  89 59 Y  105 69 i  121 79 y
 10 0A LF   26 1A SUB  42 2A *  58 3A :  74 4A J  90 5A Z  106 6A j  122 7A z
 11 0B VT   27 1B ESC  43 2B +  59 3B ;  75 4B K  91 5B [  107 6B k  123 7B {
 12 0C FF   28 1C FS   44 2C ,  60 3C <  76 4C L  92 5C \  108 6C l  124 7C |
 13 0D CR   29 1D GS   45 2D -  61 3D =  77 4D M  93 5D ]  109 6D m  125 7D }
 14 0E SO   30 1E RS   46 2E .  62 3E >  78 4E N  94 5E ^  110 6E n  126 7E ~
 15 0F SI   31 1F US   47 2F /  63 3F ?  79 4F O  95 5F _  111 6F o  127 7F DEL$ ./a.out > file.txt
$ md5sum file.txt
41b6ecde6a3a1324be4836871d8354fe  file.txt

Ungolfed:

/* some variables for the trip */
i,j,z=127;

main()
{
    /* print header row */
    for(;j++<8;)
            printf("Dec Hex%*s", j<3?4:j<6||j>7?2:3, "");

    /* Iterate through ASCII values, print a space after every column, newline after every 8th value */
    for(;i<143 && putchar(!i|i>z ? 10 : 32); i+=16)
    {
            /* print dec/hex value */
            printf("%*d %02X ", i>95?4:3, i, i=i>z?i%z:i);

            /* print character or friendly name for non-printable characters */
            i%z>31
                    ? putchar(i)
                    : printf("%.3s", "DELNULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US "+(i+1)%128*3);
    }
}

আইডিয়নে চেষ্টা করে দেখুন ।

সম্পাদনা করুন: আরও 2 বাইট। ড্যান অ্যালেন এবং ডিজিটাল ট্রমা অনেক ধন্যবাদ।



@ ডিজিটালট্রামা: আপনি জিসিসিতে যেতে পারেন। আপনি সি তে পারবেন না
দেবসোলার

2
@ ডেভসোলার এটি জিসিসির জিনিস নয়। কেএন্ডআর সি-তে সংকলক, প্রিন্টফ এবং পুটচারের ঘোষণা না রেখে অনুমান করবে এবং সঠিক অনুমান করবে। অন্যদিকে, এটি স্ট্যান্ডার্ড সি 99 এ অপরিবর্তিত আচরণ, তবে কে
পাত্তা দেয়

1
305 যদি আপনি প্রথম লাইনটি পরিবর্তন করেন x,y,z=127;এবং 127 এর 4 টি উপস্থিতিকে z দিয়ে প্রতিস্থাপন করেন। 6 টি অক্ষর যুক্ত করে তবে 8 টি দূরে নেয়।
পার্সেস্টি

চতুর কৌশল, ডেলকে প্রথম স্থানে রেখে putting আমি এই ধারণা ধার করব। আমি কেবল এইটির জন্য এখনই
উত্সাহ দিতে

7

বাবল গাম , 535 বাইট

0000000: e0 05 2f 02 0f 5d 00 22 19 48 62 01 d3 1f 78 e2  ../..].".Hb...x.
0000010: 9a a0 8e 4e 5d d1 b4 c1 77 aa 32 58 ca 97 55 7e  ...N]...w.2X..U~
0000020: a8 01 87 7d db e4 00 55 8f c0 49 67 b6 56 02 5e  ...}...U..Ig.V.^
0000030: ae b2 4d e2 a9 f4 7f 99 a8 56 9e b7 4c 60 a4 79  ..M......V..L`.y
0000040: 6a 76 54 11 90 72 d6 b7 19 df 2f 57 39 2d 21 c0  jvT..r..../W9-!.
0000050: d1 4c 5e d6 21 29 c8 ed 7c a9 7b 8c 85 dc 62 a1  .L^.!)..|.{...b.
0000060: 65 98 e1 0b a7 36 83 c8 ca 88 0c 57 22 f6 56 1e  e....6.....W".V.
0000070: 45 03 b6 74 21 a8 39 52 e9 71 b4 98 ed 71 38 9f  E..t!.9R.q...q8.
0000080: 2d dc 21 d7 bf 60 41 cc bb bd a7 cb 0b 17 8d 65  -.!..`A........e
0000090: 05 13 04 0f 6c bb 67 62 aa c7 ad 6b be 9e 46 77  ....l.gb...k..Fw
00000a0: 35 b9 91 85 f5 47 31 2f c7 ec da c0 00 0e a6 48  5....G1/.......H
00000b0: 01 ba 8b cd b0 34 81 c4 74 9f 4e 3b c3 d0 f7 10  .....4..t.N;....
00000c0: 46 a0 55 8d 49 5d b7 b0 c9 79 ac e5 5f ef 49 f2  F.U.I]...y.._.I.
00000d0: b0 1b 71 3a e1 30 7a fc ce a7 a8 d5 c3 9a 35 1a  ..q:.0z.......5.
00000e0: 4e 27 92 40 4b b5 9b c4 0d 5c e8 cd 71 00 bd c1  N'.@K....\..q...
00000f0: ca aa d2 05 dc e1 0f d9 19 1d 6f 14 87 b3 e4 e8  ..........o.....
0000100: 9e 82 64 d8 e4 76 e7 24 0a 0e 88 72 a1 12 44 95  ..d..v.$...r..D.
0000110: d4 78 82 bd da 71 f3 fb 03 00 d1 4b c8 80 cb 49  .x...q.....K...I
0000120: 0b 98 be 26 ba 3e e8 82 e2 14 9b ba 1a cf bf bc  ...&.>..........
0000130: 30 4e c4 e8 7e b4 d5 46 e6 bc 73 97 c5 ed a6 e2  0N..~..F..s.....
0000140: 06 02 e7 1b 74 4d da 73 fb 15 68 50 c0 ed 32 9b  ....tM.s..hP..2.
0000150: 0d d7 49 d5 c1 a2 e9 07 2c 77 81 6c d3 8d 59 26  ..I.....,w.l..Y&
0000160: 1c 35 ec 2b 7e cb 3a f1 cc 45 a9 e5 6d 3e 33 ca  .5.+~.:..E..m>3.
0000170: 56 3c 8a 8d f6 13 e9 59 d4 52 07 44 ab 5e bc f4  V<.....Y.R.D.^..
0000180: 1f ed f8 9c 8b 48 e1 c4 6c fd 47 d5 04 cc 6e aa  .....H..l.G...n.
0000190: 3f 54 b8 cc cd 09 01 6d 20 3c 42 c9 44 da b1 c1  ?T.....m <B.D...
00001a0: 69 80 12 26 6b 65 e1 4d 1c c3 48 36 2b 14 00 61  i..&ke.M..H6+..a
00001b0: 04 6b 9a 59 2a 53 e3 64 a7 4f dd cc be 2c 20 5e  .k.Y*S.d.O..., ^
00001c0: f7 c7 64 34 e6 12 a6 44 c1 69 35 76 05 db 13 ab  ..d4...D.i5v....
00001d0: 52 10 b5 8e da 8e c5 3c 4c d0 69 0b 19 18 67 ef  R......<L.i...g.
00001e0: 44 1c 7b 70 63 98 95 40 28 6e 3d e7 44 cb 24 83  D.{pc..@(n=.D.$.
00001f0: 88 62 63 3c 02 1c e7 db db 02 56 ae cd 9c e0 9c  .bc<......V.....
0000200: 1c a1 c1 ae d1 dd 7b b7 e6 bd 5b 38 ee 75 c5 6c  ......{...[8.u.l
0000210: 06 16 6c b2 fb 00 00                             ..l....

এই উপরের প্রোগ্রামটি এলজেডএমএ সংক্ষেপণ ব্যবহার করে। এটি অনলাইন চেষ্টা করুন!


1
আমি মনে করি আপনি এর থেকে আরও ভাল করতে পারবেন ... ;-)
ডিজিটাল ট্রমা

11
বুবলগামে নেই ...
ডেনিস

4
দ্য মার্টিয়ান পুরো উপন্যাসটি মুদ্রণের জন্য আপনার কতটি বাইট দরকার ?
অ্যালেক্স এ।


3

সি, 385 384 358 বাইট

i,n,j;char a[100]="NULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US DEL";z(o){printf("%3d %02X %.*s ",j,j,3,a+o);}main(){for(;i<8;i++){printf("%3s %3s   ","Dec","HEX ");}printf("\n");for(;n<16;n++){for(j=n;j<=n+112;j+=16){if(j==127)z(96);else j<32?z(j*3):printf("%3d %02X %c   ",j,j,j);}printf("\n");}return 0;}

উপরের লোকটি আমাকে ঘুষি মারল তবে আমি এখনও জমা দিতে চেয়েছিলাম কারণ আমি এটি উপভোগ করেছি।

ডি-golfed:

#include<stdio.h>
i,n,j;
char a[100] = "NULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US DEL";
z(o){printf("%3d %02X %.*s ",j,j,3,a+o);}
main(){
   for(;i<8;i++){printf("%3s %3s   ","Dec","HEX ");}printf("\n");
   for(;n<16;n++){
      for(j=n;j<=n+112;j+=16){
         if(j==127)z(96);
         else j<32?z(j*3):printf("%3d %02X %c   ",j,j,j);
      }
      printf("\n");
   }
   return 0;
}

আপডেট: জে সঙ্গে একটি var প্রতিস্থাপন। একটি বাইট সংরক্ষণ করা হয়েছে;)
আপডেট 2: কয়েকটি অতিরিক্ত জিনিসপত্র ছাঁটাই এবং কিছু বাইট সংরক্ষণ করার জন্য একটি মুদ্রণ টুটি কার্যকরী করল।


অনেক উত্তরের অনুরূপ, আপনার কাছে কলামগুলির মধ্যে সঠিক ব্যবধান নেই। এছাড়াও s/HEX/Hex/
ডিজিটাল ট্রমা

আমি অবশ্যই thingy সি কীওয়ার্ডটি ব্যাখ্যা করে অধ্যায়টি মিস করেছি ;
ডিজিটাল ট্রমা

3

জাভাস্ক্রিপ্ট ES6 432 405 398 385

o="Dec Hex  "
o=`${o}  ${o}  ${o+o+o+o} ${o} ${o}\n`
for(i=0;i<16;i++){for(j=0;j<8;j++){k=i+j*16
o+=k>9&&k<16?' ':k<96||k>99?'  ':'   '
o+=k+" "+(k<16?0:'')+k.toString(16).toUpperCase()+" "
o+=k>31?String.fromCharCode(k):"NULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US ".substr(k*3,3)
}o+="\n"}
console.log(o.substr(0,o.length-2)+'DEL')

ES5 আমি নিব? ES6 আপনি যেমন জিনিস করতে পারে ${o} ${o} ${o+o+o+o} ${o} ${o}
নিল

@ নীল ধন্যবাদ! আমি পরিবর্তনটি যুক্ত করেছি এবং পিছনের স্থানটি যত্ন নেওয়া হয়েছে।
ওল্ফহ্যামার

আসলে আপনি আরও এক ধাপ এগিয়ে যেতে পারেন যেহেতু আক্ষরিক নিউলাইনগুলি ব্যাকটিক্সের অভ্যন্তরে আইনী (কোনও মন্তব্যে কীভাবে এটি প্রদর্শিত হবে তা নিশ্চিত নয়)।
নীল

3

গল্ফস্ক্রিপ্ট, 225 বাইট

"\x04\x04\x02\x02\x02\x03\x03\x02"{"Dec Hex"" ":s@*}%n[128,{3s*\+-4>s+.~.96<@>\256+16base{10,"ABCDEF"1/+=}%1>{+}/}%"\x1f\xbb\x89\xbc\xaf\x82=F\xd7U%\x80\x8a\xf6\xc7U\xa6al)A\xf6\x19\xfe\x03\x83\xef-\x9f\xe7m\xeb\x82h\xf3\xbfEm6V\x1fD\x8c\xd7~\xcb\x95&(\x1e/:\x8e\xc5\xb0\x0b\xd6\xd4\xd09\xdd""\xff\x1e"{base}/{90,65>1342s++1/=}%3/32/"\x7f"{,32>}%1/*]zip{s*}%16/zip{s*n}%

3

পাইথন 2.7, 389 বাইট

সম্ভবত এটি আর চেষ্টা করে ট্রিম করতে যাচ্ছেনা, তবে এটি এ পর্যন্ত পাওয়া মজাদার ছিল।

r=range
c='NULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US '
h=''
p=['']*16
o=[11,11,9,9,9,10,10,9]
e=['%3s '%str(i)+('%02X ')%(i)+('DEL',c[i*3:i*3+3].strip() if i<32 else chr(i))[i<127] for i in r(128)]
for i in r(8):
    l=e[i*16:(i+1)*16]
    h+='Dec Hex'.ljust(o[i])
    p=[p[j]+l[j].ljust((0,o[i])[i<7]) for j in r(16)]
print h+'\n'+'\n'.join(p)

3

পাইথন 3.4, 216 বাইট

বৈধ পাইথন ২.7। অভিশাপ.অ্যাসিআইসি কনট্রোলনাম সম্পর্কে ফ্রাইআম দ্য اِজিগম্যানের ধারণা / পরামর্শ ব্যবহৃত হয়েছে , যা প্রায় 100 বাইট সংরক্ষণ করে।

import curses.ascii as a
o=''
w=4,4,2,2,2,3,3,1
for x in w:o+='Dec Hex'+' '*x
o+=' '
for n in range(16):
 o+='\n'
 for x in w:o+='%3d %02X %-*s'%(n,n,x,n>31and[chr(n),'DEL'][n>126]or a.controlnames[n]);n+=16
print(o)

$ python ascii.py | md5
58824a1dd7264c0410eb4d727aec54e1

2

রুবি (2.2.2p95), 277 295 306 331 364

a='Dec Hex  ';puts"#{a}  "*2+a*4+" #{a}"*2,16.times.map{|i|8.times.map{|j|(k=i+j*16;k==127?'  127 7F DEL':"#{k} #{'%.2X'%k} #{'NULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US  '[k*3..k*3+2]||k.chr}").rjust(j<2?10+j :9+j/6)}.join}

ungolfed

s = "Dec Hex    " * 2 + "Dec Hex  " * 4 + " Dec Hex  " * 2
a = 127.times.map { |i|
  "#{i} #{'%.2X'%i} #{'NULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US  '[i*3..i*3+2]||i.chr}"
}
a << '  127 7F DEL'
x = 16.times.map { |i|
  8.times.map { |j|
    a[i + j * 16].rjust(j < 2 ? 10 + j : 9 + j / 6)
  }.join
}.join "\n"
puts s, x

নিয়ন্ত্রণ নামের অ্যারে সত্যিই আমাকে এখানে হত্যা করে। তবুও আশা করছি রুবির জন্য পাইথনের অভিশাপের মতো অনুরূপ কিছু খুঁজে পাবে ...
কনার ক্লার্ক

1

মাইক্রোস্ক্রিপ্ট দ্বিতীয় , 1314 বাইট

সম্ভবত অনুকূল থেকে অনেক দূরে

"Dec Hex    "pp"Dec Hex  "ppps"Dec Hex   "ppoP"  0 00 NUL  16 10 DLE  32 20    48 30 0  64 40 @  80 50 P   96 60 `  112 70 p\n  1 01 SOH  17 11 DC1  33 21 !  49 31 1  65 41 A  81 51 Q   97 61 a  113 71 q\n  2 02 STX  18 12 DC2  34 22 \"  50 32 2  66 42 B  82 52 R   98 62 b  114 72 r\n  3 03 ETX  19 13 DC3  35 23 #  51 33 3  67 43 C  83 53 S   99 63 c  115 73 s\n  4 04 EOT  20 14 DC4  36 24 $  52 34 4  68 44 D  84 54 T  100 64 d  116 74 t\n  5 05 ENQ  21 15 NAK  37 25 %  53 35 5  69 45 E  85 55 U  101 65 e  117 75 u\n  6 06 ACK  22 16 SYN  38 26 &  54 36 6  70 46 F  86 56 V  102 66 f  118 76 v\n  7 07 BEL  23 17 ETB  39 27 '  55 37 7  71 47 G  87 57 W  103 67 g  119 77 w\n  8 08 BS   24 18 CAN  40 28 (  56 38 8  72 48 H  88 58 X  104 68 h  120 78 x\n  9 09 HT   25 19 EM   41 29 )  57 39 9  73 49 I  89 59 Y  105 69 i  121 79 y\n 10 0A LF   26 1A SUB  42 2A *  58 3A :  74 4A J  90 5A Z  106 6A j  122 7A z\n 11 0B VT   27 1B ESC  43 2B +  59 3B ;  75 4B K  91 5B [  107 6B k  123 7B {\n 12 0C FF   28 1C FS   44 2C ,  60 3C <  76 4C L  92 5C \\  108 6C l  124 7C |\n 13 0D CR   29 1D GS   45 2D -  61 3D =  77 4D M  93 5D ]  109 6D m  125 7D }\n 14 0E SO   30 1E RS   46 2E .  62 3E >  78 4E N  94 5E ^  110 6E n  126 7E ~\n 15 0F SI   31 1F US   47 2F /  63 3F ?  79 4F O  95 5F _  111 6F o  127 7F DEL"

2
আমি এটি কীভাবে পরীক্ষা করব?
ডিজিটাল ট্রমা

@ ডিজিটাল ট্রুমা আমি উত্তরের গিথুব রেপোতে একটি লিঙ্ক যুক্ত করব। ইনপুটটির প্রথম লাইন হিসাবে প্রোগ্রামটির সাথে দোভাষীটি চালান।
সুপারজেডি ২২৪

অভিনন্দন. আপনি এই প্রতিযোগিতার সর্বাধিক বিরক্তিকর উত্তর দিয়েছেন। ò_ó +1
user48538

@ জাইবিন ১০১১ ঠিক আছে, স্ট্রিংটি একবারে মুদ্রণ করার চেয়ে এটি প্রায় 30 বাইট কম।
সুপারজেডি ২৪

1

জাভাস্ক্রিপ্ট, 415 413 423 1 411 406 402 414 2 412 বাইট

x=>eval('a=`${d="Dec Hex  "}  `[r="repeat"](2)+d[r](3)+`${d} `[r](2)+d+`
`;z="NULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US ".match(/.{3}/g);z[127]="DEL";for(j=i=0;i<128;i++){a+=("  "+((b=i%8*16)+j)).slice(-3)+" "+(0+(c=b+j).toString(16).toUpperCase()).slice(-2)+" "+(c<32||i==127?z[c]:String.fromCharCode(c))+(b==112?`
`:(b < 80 ? " " : "  "));if(b==112)j++}a')

চর কোড 32 এর আগে অক্ষরগুলি কীভাবে প্রিন্ট করা যায় তা আমি বুঝতে পারি না, তাই কেবল তাদের একটি স্ট্রিং হিসাবে তালিকাভুক্ত করেছি।

আমার কাছে পাওয়া হ্যাশটি মিলবে বলে মনে হচ্ছে ( 41b6ecde6a3a1324be4836871d8354fe)।

ডেমো + অবহিত:

function t() {
  a = `${d="Dec Hex  "}  `.repeat(2) + d.repeat(3) + `${d} `.repeat(2) + d + "\n";
  z = "NULSOHSTXETXEOTENQACKBELBS HT LF VT FF CR SO SI DLEDC1DC2DC3DC4NAKSYNETBCANEM SUBESCFS GS RS US ".match(/.{3}/g);
  z[127] = "DEL";
  for (j = i = 0; i < 128; i++) {
    a += ("  " + ((b = i % 8 * 16) + j)).slice(-3) + " " + (0 + (c = b + j).toString(16).toUpperCase()).slice(-2) + " " + (c < 32 || i == 127 ? z[c] : String.fromCharCode(c)) + (b==112?"\n":(b < 80 ? " " : "  "));
    if(b==112)j++;
  }
  return a
}
document.write("<pre>" + t() + "</pre>")


1 - স্থির ব্যবধান
2 - আবার স্থির ব্যবধান


হু, মোবাইল ক্রোম <p>> এ মনোস্পেস করে না, যদিও এটি হওয়া উচিত।
নিকেল 20

আমি মনে করি না যে প্রশ্নটি জিজ্ঞাসা করার ব্যবধানের ফাঁকা জায়গা।
সুপারজেডি ২৪

@ Dig oy wtf আমি এটি 0.0
নিকেল

@ ডিজিটাল আমি ব্যবধানটি ঠিক করেছি।
নিকেল

@ ডিজিটাল আপনি শেষ কলাম পরে? ঠিক আছে, তবে এটি এমনকি চেহারাটিকেও প্রভাবিত করে না ...
নিকেল

1

ম্যাটল্যাব, 363 বাইট

সি এর মতো ছোট নয় তবে তুলনীয় ...

h='';s=@sprintf;for i=[4 4 2 2 2 3 3 2]h=s([h 'Dec Hex%*s'],i,'');end
h=[h 10];a='NULDLESOHDC1STXDC2ETXDC3EOTDC4ENQNAKACKSYNBELETBBS CANHT EM LF SUBVT ESCFF FS CR GS SO RS SI US ';for i=0:15for j=0:7k=i+16*j;if j<2b=1+6*i+3*j;h=[h s('%3d %02X %-3s ',k,k,a(b:b+2))];else
h=[h s('%*d %02X %c ',3+(j>5),k,k,k)];end
end
h=[h(1:end-1) 10];end
disp([h(1:end-2) 'DEL']);

আমাকে কী নিখরচায় ডাউনলোডটি ডাউনলোড করতে হবে, বা অন্য কোনও উপায় আছে যা আমি আপনার উত্তরটি পরীক্ষা করতে পারি? অথবা আপনি কি দাবি করতে পারেন যে আউটপুটটির এমডি 5 সঠিক?
ডিজিটাল ট্রমা

আপনি এটি জিএনইউ অকটাভে চালাতে পারেন, তবে আমি ইতিমধ্যে করেছি এবং এই সংস্করণটিতে,, and এবং ৮ কলামের মধ্যে অতিরিক্ত প্যাডিংয়ের অভাব রয়েছে that সেগুলি বাদে এটি সঠিক।
রেনার পি।

হ্যাঁ তুমিই ঠিক. কোডটি সংশোধন করেছেন। এটি ঘটে, যদি আপনার পাশাপাশি গল্ফযুক্ত এবং অরোগল্ফড বৈকল্পিক থাকে। কিছু টাইপস সংশোধন করেছেন। আকর্ষণীয়ভাবে আমি একটি আলাদা আসকি পেয়েছি | লেজ-এন = + 7 (প্রথম সারিতে শেষের দুটি ফাঁকা জায়গা অনুপস্থিত) (উবুন্টু 15.10)। আমি কখনই লক্ষ্য করিনি, যে মাতলাব ভেরিয়েবলে d এবং ই আলাদা আচরণ করে। (i = 1: 2 ডি = 10; শেষ;% সিনট্যাক্স ত্রুটির জন্য) (i = 1: 2 কে = 10; শেষ;% জরিমানা)
জোনাস

1

/// , 998 বাইট

//\/\////  /Dec Hex/ 0/ 1/ 2/ 3/ 4/ 5/ 6	/ 7/ 8/ 9/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /A /B /C /D /E /F /
 /  NUL 6DL280 4@ 0P6` 12	pSOH 7DC3! 91 51Q7a 13	qSTX 8DC4" 02 62R8b 14	rETX 9DC5# 13 73S9c 15	sEOT 0DC6$ 24 84T 00d 16	tENQ 1NAK 7% 35 95U 01e 17	uACK 2SYN 8& 46 	06V 02f 18	v	BEL 3ET9' 57	 	1G 7W 03g 19	wBS4CAN 0( 68 	2H 8X 04h 20	xHT5EM1) 79 	3I 9Y 05i 21	y
0L 6SU2* 8: 	4J 0Z 06j 22	z
1VT7ES3+ 9; 	5K 1[ 07k 23	{
2F 8FS4, 0< 	6L 2\\ 08l 24	|
3CR9GS5- 1= 	7M 3] 09m 25	}
4SO0RS6. 2> 	8N 4^ 10n 26	~
5SI1US7\/ 3? 	9O 5_ 11o 27	DEL

এটি অনলাইন চেষ্টা করুন!


1

পিএইচপি ,330 321 বাইট

$a=[NUL,SOH,STX,ETX,EOT,ENQ,ACK,BEL,BS,HT,LF,VT,FF,CR,SO,SI,DLE,DC1,DC2,DC3,DC4,NAK,SYN,ETB,CAN,EM,SUB,ESC,FS,GS,RS,US,127=>DEL];foreach($t=[3,3,1,1,1,2,2,0]as$i)echo'Dec Hex ',str_repeat(' ',$i);echo" 
";for($x=0;$x<16;)for($y=$x++;$y<128;$y+=16)printf("% 3d %1$02X % -".$t[$y/16].s.($y<112?' ':"
"),$y,$a[$y]?:chr($y));

এটি অনলাইন চেষ্টা করুন!

কম গোল্ফ:

$a=[NUL,SOH,STX,ETX,EOT,ENQ,ACK,BEL,BS,HT,LF,VT,FF,CR,SO,SI,DLE,
DC1,DC2,DC3,DC4,NAK,SYN,ETB,CAN,EM,SUB,ESC,FS,GS,RS,US,127=>DEL];

$t=[3,3,1,1,1,2,2,0];

foreach( $t as $i )
    echo 'Dec Hex ', str_repeat( ' ', $i );

echo" \n";

for( $x=0; $x<16; ) {
    for( $y=$x++; $y<128; $y+=16 ) {
        printf( "% 3d %1$02X % -" . $t[$y/16] . 's' . ( $y<112 ?' ' : "\n" ),
            $y, $a[$y] ?: chr($y) );
    }
}

0

কমন লিস্প (এসবিসিএল), 309

(progn(format t"~{~v,0TDec Hex  ~}"#1='(0 11 22 31 40 49 59 69))(dotimes(y 16)(fresh-line)(loop for x from 0 for k in #1#for i =(+(* 16 x)y)do(format t"~v,0T~3d ~2,'0x ~a"k i i(if(graphic-char-p #2=(code-char i))#2#(case i(8"BS")(9"HT")(10"LF")(12"FF")(13"CR")(127"DEL")(t(string-upcase(char-name #2#)))))))))

চালিত করার জন্য একটি স্ক্রিপ্ট যা নীচের মানটিকে আউটপুট দেয়, যেমন। চূড়ান্ত নিউলাইন ছাড়াই সংস্করণ (এমডি 5: 41 বি 6ecde6a3a1324be4836871d8354fe)।

Dec Hex    Dec Hex    Dec Hex  Dec Hex  Dec Hex  Dec Hex   Dec Hex   Dec Hex  
  0 00 NUL  16 10 DLE  32 20    48 30 0  64 40 @  80 50 P   96 60 `  112 70 p
  1 01 SOH  17 11 DC1  33 21 !  49 31 1  65 41 A  81 51 Q   97 61 a  113 71 q
  2 02 STX  18 12 DC2  34 22 "  50 32 2  66 42 B  82 52 R   98 62 b  114 72 r
  3 03 ETX  19 13 DC3  35 23 #  51 33 3  67 43 C  83 53 S   99 63 c  115 73 s
  4 04 EOT  20 14 DC4  36 24 $  52 34 4  68 44 D  84 54 T  100 64 d  116 74 t
  5 05 ENQ  21 15 NAK  37 25 %  53 35 5  69 45 E  85 55 U  101 65 e  117 75 u
  6 06 ACK  22 16 SYN  38 26 &  54 36 6  70 46 F  86 56 V  102 66 f  118 76 v
  7 07 BEL  23 17 ETB  39 27 '  55 37 7  71 47 G  87 57 W  103 67 g  119 77 w
  8 08 BS   24 18 CAN  40 28 (  56 38 8  72 48 H  88 58 X  104 68 h  120 78 x
  9 09 HT   25 19 EM   41 29 )  57 39 9  73 49 I  89 59 Y  105 69 i  121 79 y
 10 0A LF   26 1A SUB  42 2A *  58 3A :  74 4A J  90 5A Z  106 6A j  122 7A z
 11 0B VT   27 1B ESC  43 2B +  59 3B ;  75 4B K  91 5B [  107 6B k  123 7B {
 12 0C FF   28 1C FS   44 2C ,  60 3C <  76 4C L  92 5C \  108 6C l  124 7C |
 13 0D CR   29 1D GS   45 2D -  61 3D =  77 4D M  93 5D ]  109 6D m  125 7D }
 14 0E SO   30 1E RS   46 2E .  62 3E >  78 4E N  94 5E ^  110 6E n  126 7E ~
 15 0F SI   31 1F US   47 2F /  63 3F ?  79 4F O  95 5F _  111 6F o  127 7F DEL

বিস্তারিত

  • (0 11 22 31 40 49 59 69)পছন্দসই আউটপুট পরিদর্শন করে যেমন একটি লাইনে প্রতিটি কলামের অবস্থান থাকে। অনেকগুলি কর্নার কেস রয়েছে যা প্রতিটি কলামের জন্য সঠিক অবস্থানটি হার্ড-কোডিং করে এবং ~Tপ্রয়োজন অনুসারে বিন্যাসের নির্দেশিকা ট্যাবুলেটটি দিয়ে আরও ভালভাবে পরিচালনা করা হয় ।

  • যেহেতু অক্ষরের নামগুলি বাস্তবায়ন-নির্ভর, তাই এই কোডটি কেবলমাত্র এসবিসিএল দোভাষীকে লক্ষ্য করে (আমি সিসিএল দিয়ে পরীক্ষা করেছি, যা অন্যান্য নাম ব্যবহার করে)। আমি char-nameবেশিরভাগ গ্রাফিকবিহীন চরিত্রের জন্য নির্ভর করি তবে তাদের কারও কারও কাছে প্রত্যাশিত আউটপুটটিতে স্পষ্ট ম্যাপিং রয়েছে।

Ungolfed

(progn
  (format t"~{~v,0TDec Hex  ~}" '(0 11 22 31 40 49 59 69))
  (dotimes(y 16)
    (fresh-line)
    (loop for x from 0
          for k in '(0 11 22 31 40 49 59 69)
          for i = (+ (* 16 x) y)
          for c = (code-char i)
          do (format t
                     "~v,0T~3d ~2,'0x ~a"
                     k
                     i
                     i
                     (if (graphic-char-p c)
                         c
                         (case i
                           (8"BS")
                           (9"HT")
                           (10"LF")
                           (12"FF")
                           (13"CR")
                           (127"DEL")
                           (t (string-upcase (char-name c)))))))))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.