বাইনারি অক্ষরের একটি স্ট্রিংকে ASCII সমতুল্য রূপান্তর করুন


27

একটি স্থান দ্বারা পৃথক করা বাইনারি অক্ষরের একটি স্ট্রিং নিন এবং এএসসিআইআই স্ট্রিংয়ে রূপান্তর করুন।

উদাহরণ স্বরূপ...

1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100

রূপান্তর করতে হবে ...

Hello World

বাইনারি স্ট্রিং নামক একটি ভেরিয়েবলে সংরক্ষণ করা হবে s

এটি একটি কোড-গল্ফ চ্যালেঞ্জ তাই সংক্ষিপ্ততম সমাধানটি জয়লাভ করে।


15
গল্প এবং অন্যান্য ফ্রিপিরিস ছাড়াই চ্যালেঞ্জ তৈরির জন্য +1, সরাসরি
বক্তৃতা করুন

9
@bebe কল্পিত কল্পনাপ্রসূত fripperies অর্ধেক মজা ফর্ম।
qwr

হ্যালো. আসুন কল্পনা করুন যে আপনার প্রযুক্তিটি এত উন্নত যে এটি ASCII সমর্থন করে না। এটিকে কি দেশীয় চরিত্রের এনকোডিংয়ে রূপান্তর করার অনুমতি দেওয়া হবে, বা এএসসিআইআইকে স্থানীয় অক্ষর এনকোডিংয়ে রূপান্তর করতে হবে? আমি এখানে ভাবছি ZX81
শান বেবারস

উত্তর:


10

রুবি, 36 32

s.split.map{|x|x.to_i(2).chr}*""

বা 31

s.gsub(/\w+ ?/){$&.to_i(2).chr}

অপ্টিমাইজেশান ক্রোন ধন্যবাদ


1
আপনি প্রতিস্থাপন পারে .join""জন্য *""কয়েকটি অক্ষর সংরক্ষণ করুন। আপনি এটি বিভক্ত + মানচিত্র + যোগের পরিবর্তে gsub দিয়েও করতে পারেন, এর মতো কিছু: s.gsub(/\w+ ?/){$&.to_i(2).chr}(৩১ টি অক্ষর)।
পল প্রেসিডেজ

2
s.gsub(/\d+./){$&.to_i(2).chr}এটি কাজ করে এবং এটি 30 টি অক্ষর, এটি কেন কাজ করে তা আমার কোনও ধারণা নেই। .শেষ সময় মেলানো যাবে না কিন্তু এটা আছে।
অ্যাডিসন

10

জাভাস্ক্রিপ্ট (ES6) 49 55 56 64

s.replace(/\d+./g,x=>String.fromCharCode('0b'+x))

সম্পাদনা গ্রহণ @bebe টি প্রস্তাবনা - ধন্যবাদ
Edit2 ধন্যবাদ @kapep - বাইনারি সাংখ্যিক আক্ষরিক সম্পর্কে জানেন না
Edit3 বাহ 6 না 4 বাইট সংরক্ষিত ধন্যবা @ETHproductions

মন্তব্যে অনুরোধ হিসাবে ব্যাখ্যা

String.replace 2 টি যুক্তি নিতে পারে:

  • নিয়মিত অভিব্যক্তি /\d+./g: এক বা একাধিক অঙ্কের পরে আলাদা আলাদা অক্ষর - জি পতাকাটি একাধিকবার প্যাটার্নটি সন্ধান করতে নির্দিষ্ট করে
  • এখানে একটি ফাংশন, এখানে তীর বিন্যাসে নির্দিষ্ট করা হয়েছে, যেখানে আর্গুমেন্ট (x) উইন্ডোড স্ট্রিং (শেষ পর্যন্ত একটি স্থানের পরে অঙ্কগুলির ক্রম) হবে এবং ফাংশনের মানটি প্রতিস্থাপন করা হবে (এই ক্ষেত্রে, একক অক্ষর থেকে কোড).

এটি লক্ষণীয় যে স্ট্রিংয়ের শেষে রেজিপক্সটি কোনও পিছনের স্থান ছাড়াই অঙ্কের ক্রমের সাথে মেলে, এক্ষেত্রে বিন্দুটি শেষ অঙ্কের সাথে মেলে। যাচাই করতে '123'.match (/ (\ d +) ./) চেষ্টা করুন।

(তবুও) জাভাস্ক্রিপ্টের আরও ভার্বোস টুকরোগুলির মধ্যে একটি ...
(স্ট্রিংগুলিতে অ্যাসাইনমেন্ট গণনা করা হয়নি)

var s='1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100'
var x=
s.replace(/\d+./g,x=>String.fromCharCode('0b'+x))

console.log(x)


2
s.replace(/\d+./g,x=>String.fromCharCode(parseInt(x,2)))56
bebe

2
s.replace(/\d+./g,x=>String.fromCharCode(eval("0b"+x)))55
কেপেক্স

আপনি কি দয়া করে ব্যাখ্যা করতে পারেন /\d+./g,x=>?
ইজলিন

1
@ আইজলিন আমি উত্তরে কিছু ব্যাখ্যা যুক্ত করেছি
এডিসি 65

আমি জানি এই একটি পুরানো উত্তর, কিন্তু আপনি পরিবর্তন করতে পারেন eval('0b'+x)থেকে '0b'+x-04 বাইট সংরক্ষণ করুন।
ইটিএইচ প্রডাকশনগুলি

8

বাশ + সাধারণ লিনাক্স ইউটিস, 25 বাইট

dc<<<2i$s[Pz0\<m]dsmx|rev

ডিসি ব্যাখ্যা

  • স্ট্যাক 2 টিপুন; পপ এবং ইনপুট রেডিক্স হিসাবে ব্যবহার করুন
  • স্ট্যাকের জন্য ইনপুট স্ট্রিংটি চাপুন (সমস্ত মান একবারে)
  • পুনরাবৃত্ত ম্যাক্রো এতে সংজ্ঞা দিন m:
    • পপ, তারপরে ASCII হিসাবে মুদ্রণ করুন
    • স্ট্যাকের গভীরতার দিকে ধাক্কা
    • স্ট্যাক থেকে 0 টিপুন
    • পপ শীর্ষ 2 স্ট্যাক মান; তুলনা করুন এবং mম্যাক্রো কল করুন যদি শূন্য না থাকে
  • স্ট্যাকের সদৃশ শীর্ষ (ম্যাক্রো সংজ্ঞা)
  • পপ এবং mরেজিস্টার ম্যাক্রো সংরক্ষণ করুন
  • পপ এবং ম্যাক্রো চালানো

কারণ আমরা পুরো বাইনারি স্ট্রিংটিকে প্রথমে স্ট্যাকের দিকে ধাক্কা দিই, যখন আমরা প্রতিটি মান পপ করি, আমরা স্ট্রিংটি বিপরীত করে শেষ করি। সুতরাং আমরা এটি revসঠিক করতে ইউটিলিটিটি ব্যবহার করি।

ব্যবহারের উদাহরণ:

$ s="1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100"
$ dc<<<2i$s[Pz0\<m]dsmx|rev
Hello World
$ 

7

পাওয়ারশেল, 49

-join(-split$s|%{[char][convert]::toint32($_,2)})

সম্পাদনা: অন্যান্য পাওয়ারশেলের উত্তরটি দেখেনি। তবে এটি সমাধানের মূলত একটি উপায় রয়েছে।


7

সি - 57 43 38/31

38 বাইট সংস্করণ:

for(int*x=s;putchar(strtol(x,&x,2)););

অথবা এস পয়েন্টার হলে কেবল 31 বাইট:

while(putchar(strtol(s,&s,2)));

আমি কখনই লুপ ব্যবহার করার কথা ছিল না ঠিক তেমনটিই মনে হয় ... তবে এটি কার্যকর হয়।


6

পাইথ , 12

smCv+"0b"dPZ

মনে রাখবেন যে পাইথের কোনও আইনী পরিবর্তনশীল নয়, তাই আমি পরিবর্তে জেড ব্যবহার করেছি used

ব্যাখ্যা:

        print(
s             sum(
m                 map(lambda d:
C                     chr(
v                         eval(
+"0b"d                         "0b"+d)),
P                     split(
Z                           Z))))

উদাহরণ:

=Z"<the binary string from above>"smCv+"0b"dPZ
Hello World

ফর্ম্যাটিংয়ে এটি হোয়াইটস্পেস ব্যবহার করে না (এই সত্যটি পাইথনের দিকে তাকিয়ে আছে) এটি একটি বড় +1
ফারাপ

@Pharap হ্যাঁ, Pyth দিকে তাকিয়ে করার একটি পদ্ধতি এটা উপাদান এটা হোয়াইটস্পেস, প্রথম বন্ধনী, মাল্টি অক্ষর টোকেন ইত্যাদি মুছে তার বেশি অক্ষরের গ্রহণ করতে যে সব সাথে পাইথন
isaacg

আমি পাইথকে জানি না, তবে এটি কি id2জায়গায় ব্যবহার করতে 4 টি অক্ষর সংরক্ষণ করবে না v+"0b"d? যাইহোক, এটি উভয় অপঠনযোগ্য এবং দুর্দান্ত is
DLosc

@ ডিএলকাস আমি এই প্রশ্নটি করার পরে পাইথের সাথে ফাংশনটি যুক্ত করেছি, এই প্রশ্নের কারণে বেশিরভাগ অংশে। এটি বর্তমান পাইথের সাথে সংক্ষিপ্ত হবে, তবে বর্তমানে চ্যালেঞ্জের জন্য পাইথের অনুমতি নেই।
isaacg

আমি দেখি. আমি ভাবলাম এটি যদি এমন কিছু হতে পারে।
DLosc

6

ডস - x বাইটে x86 মেশিন কোড

00000000  30 d2 b4 08 cd 21 2c 30  72 06 d0 e2 08 c2 eb f2  |0....!,0r.......|
00000010  b4 02 cd 21 eb ea                                 |...!..|

যেহেতু মেশিন কোডে কোনও সত্যিকারের স্ট্রিং ভেরিয়েবল নেই (এবং বিশেষত " s" নামে কোনও ভেরিয়েবল নেই ) আমি স্টিডিনের জন্য ইনপুট হিসাবে স্থির হয়েছি।

এনএএসএম ইনপুট:

    org 100h

section .text

start:
    xor dl,dl
loop:
    mov ah,8
    int 21h
    sub al,'0'
    jb print
    shl dl,1
    or dl,al
    jmp loop
print:
    mov ah,2
    int 21h
    jmp start

6

পাওয়ারশেল ( 52 49)

-join(-split$s|%{[char][convert]::ToInt16($_,2)})

বাইনারি স্ট্রিং উপর Simple গুলি মধ্যে সহজ লুপ। [কনভার্ট] অন্তর্ভুক্ত থাকা আমার স্কোরকে মেরে ফেলে।

সম্পাদনা: ওয়াওয়ারি, পাওয়ারশেলের এটিকে টেনে তোলার একমাত্র উপায় আছে। জো এবং আমি দুজনেই একই উত্তরটি স্বাধীনভাবে কাজ করতে পেরেছি!

ইনপুট:

1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100

আউটপুট:

Hello World

1
আপনি তিনটি অক্ষর সাশ্রয় করে অ্যানারি স্প্লিট অপারেটরটি ব্যবহার করতে পারেন (যে সময়ে আমাদের উত্তরগুলি অভিন্ন ... বড় অবাক ;-))।
জোয়

@ জোয়ে ওহ, ভাল পয়েন্ট! বিশ্বাস করতে পারছি না আমি সেটা মিস করেছি। এটি ধরার জন্য আপনি আমার কাছ থেকে +1 পান, ধন্যবাদ!
ফুয়ান্ডন


5

পার্ল 33 32

সম্পাদনা: আপডেট সমাধান, 32।

say$s=~s/\d+ ?/chr oct"0b$&"/rge

পূর্ববর্তী সমাধান (33):

$_=$s;say map{chr oct"0b$_"}split

অথবা

say map{chr oct"0b$_"}split/ /,$s

টেস্ট:

perl -E '$s="1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100";$_=$s;say map{chr oct"0b$_"}split'

5

জে (23)

u:;(#.@:("."0))&.>cut s

টেস্ট:

   s=:'1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100'
   u:;(#.@:("."0))&.>cut s
Hello World

ব্যাখ্যা:

                  cut s    NB. split S on spaces
   (          )&.>         NB. for each element
        ("."0)             NB. evaluate each character
      @:                   NB. and
    #.                     NB. convert bitstring to number
  ;                        NB. unbox each number
u:                         NB. convert to ASCII



4

এপিএল (15)

⎕UCS{2⊥⍎¨⍕⍵}¨⍎s

টেস্ট:

      s←'1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100'
      ⎕UCS{2⊥⍎¨⍕⍵}¨⍎s
Hello World

ব্যাখ্যা:

  • ⍎s: মূল্যায়ন করুন s, এটি পূর্ণসংখ্যার অ্যারে রূপান্তরিত করুন। অ্যারেগুলিকে স্পেস দ্বারা পৃথক করা সংখ্যা হিসাবে লেখা হয়, তাই এই বিভক্ত হয় s
  • {... : প্রতিটি উপাদান জন্য:
    • ⍕⍵: নম্বরটি স্ট্রিংয়ে ফিরিয়ে দিন
    • ⍎¨: বিটস্ট্রিং দিয়ে প্রতিটি স্বতন্ত্র ডিজিট মূল্যায়ন করুন
    • 2⊥: বেস -২ ডিকোড, নম্বর দেওয়া
  • ⎕UCS: প্রতিটি সংখ্যার জন্য চরিত্রটি পান

অন্যথায় নির্দিষ্ট আপনি অক্ষরের পরিবর্তে বাইট গণনা করা উচিত: codegolf.stackexchange.com/tags/code-golf/info :)
Averroes

1
@ অ্যারোয়েস: এপিএল চরসেটটি
মেরিনাস

আহ, আমি এটা জানতাম না। আমার খারাপ। দুঃখিত!
এভেরোয়েস

4

পিএইচপি (61)

<?=join(array_map('chr',array_map('bindec',explode(' ',$s))))

foreach(str_split($s,8)as$v)echo chr(bindec($v));
জার্গ হালসারম্যান

@ জার্গহালসারম্যান এনকোডিং নেতৃস্থানীয় শূন্যগুলি এড়িয়ে যেতে পারে তাই str_split($s,8)কাজ করবে না। foreach(explode(' ',$s)as$v)echo chr(bindec($v));বৈধ হতে পারে তবে আমি আমার প্রথম পিপিজিসি উত্তরগুলির সম্পাদনা করার পরিকল্পনা করি না যা স্পষ্টতই কোনওভাবেই গল্ফ হয় না। যাহোক তোমাকে ধন্যবাদ!
ক্রিস্টোফ

4

ব্যাচাস , 25 বাইট

S,' 'j:A=(Ö,2,10b:c),A¨

ব্যাখ্যা:

S,' 'j স্ট্রিং এসকে ফাঁকা স্থান দ্বারা বিভক্ত করুন এবং এটিকে একটি ব্লকে রূপান্তর করুন (কিছু ধরণের অ্যারে)।

:A= পূর্ববর্তী ব্লকটি পেতে এবং এটিকে একটি ভেরিয়েবলের আশ্বাস দিয়ে।

(),A¨ এ এ প্রতিটি উপাদান জন্য

Ö,2,10bÖবেস 2 তে বর্তমান উপাদানটি (দ্বারা প্রতিনিধিত্ব করুন ) পড়ুন এবং এটি বেস 10 এ রূপান্তর করুন।

:c আগের মানটি পান এবং চর হিসাবে মুদ্রণ করুন



3

সি - 63

যেহেতু স্ট্যান্ডার্ড লাইব্রেরিতে সি-এর কোনও বেস 2 রূপান্তরকারী নেই: পরীক্ষা এখানে
সম্পাদনা করুন: আছে, আমি এটি সম্পর্কে জানার জন্য খুব বোকা

r;f(char*s){for(;*s;(*s|32)-32||(putchar(r),r=0))r=2*r|*s++&1;}

3

দৈর্ঘ্য এনকোডেড ব্রেনফাক, 49 বাইট চালান

যেহেতু ব্রেইনফাকের কোনও ভেরিয়েবল নেই, আমি কেবল পরিবর্তে স্ট্যান্ডার্ড ইনপুট এবং আউটপুট ব্যবহার করেছি।

32+দোভাষী দ্বারা কোডটি 32 +টি হিসাবে ব্যাখ্যা করা উচিত । আপনার দোভাষী যদি আরএলইকে সমর্থন না করেন তবে কেবল সেগুলি ম্যানুয়ালি প্রতিস্থাপন করুন।

>,[32->+<[16-<[>++<-]>[<+>-]>-<]>[<<.[-]>>-]<,]<.

প্রসারিত (নন-আরএলই) সংস্করণ: (91 বাইট)

>,[-------------------------------->+<[----------------<[>++<-]>[<+>-]>-<]>[<<.[-]>>-]<,]<.

কোডটি ধরে নিয়েছে যে ইওএফটি 0 হিসাবে এনকোড হয়েছে।

ব্যাখ্যা

নিম্নলিখিত বিন্যাস ব্যবহৃত হয়:

+---+---+------+
| x | a | flag |
+---+---+------+

xASCII বাইটটি কোথায় মুদ্রিত হতে হবে, aএটি স্ট্যান্ডার্ড ইনপুট থেকে একটি চরিত্র এবং একটি স্থান flagহলে 1 হয় a

>,            Read a character a into the second cell
[             While not EOF: 
  32-           Decrease a by 32 (a -= ' ')
  >+<           Set the flag to 1 
  [             If a was not a space:
    16-           Decrease by 16 more ('0' == 32+16)
    <[>++<-]      a += 2*x
    >[<+>-]       Move it back (x = a)
    >-<           Reset the flag, it was not a space.
  ]>
  [             If a was a space (flag == 1):
    <<.[-]        Print and reset x
    >>-           Reset the flag
  ]
  <,            Read the next caracter a
]
<.            Print the last character x

1
+1 কারণ সমস্ত কিছুর একটি ব্রেইনফাক বাস্তবায়ন হওয়া উচিত।
ফারাপ

"রান লেন্থ এনকোডেড ব্রেনফাক" কি আসল পৃথক ভাষা? আমি কোনও দোভাষী খুঁজে পাচ্ছি না।
mbomb007

3

জাভা 8: 60 বাইট

জাভা 8 (75 বাইট) এ ল্যাম্বডাস ব্যবহার:

Arrays.stream(s.split(" ")).reduce("",(a,b)->a+(char)Byte.parseByte(b,2));

এবং যদি আপনি স্থির আমদানির অনুমতি দেন (যা এখানে কিছু ব্যবহার করা হয়) তবে এটি (61 বাইট):

stream(s.split(" ")).reduce("",(a,b)->a+(char)parseInt(b,2))

লুপের জন্য ব্যবহার করে একটি ছোট্ট বিট সংক্ষিপ্ত সংস্করণ (60 বাইট):

for(String n:s.split(" ")){out.print((char)parseInt(n,2));}

2
কী, তারা প্রকৃতপক্ষে বেনাম শ্রেণি হিসাবে পরিচিত একজাতীয়টির প্রতিস্থাপন করেছিল? অসাধারণ.
seequ

@ সিগ হ্যাঁ জাভাতেও এখন ল্যাম্বডাস / ক্লোজার রয়েছে, তবে এটি বেশিরভাগ বেনামে ক্লাসের শীর্ষে সিন্থেটিক চিনি ... (স্পষ্টতই)
রায় ভ্যান রিজন

3

ক্লোজার 63 (বা 57)

অল-ক্লোজার ইম্পল:

(apply str(map #(char(read-string(str"2r"%)))(re-seq #"\d+"s)))

জাভা ইন্টারপ সহ:

(apply str(map #(char(Long/parseLong % 2))(.split s" ")))

রিপল অধিবেশন:

golf> (def s "1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100")
#'golf/s
golf> (apply str(map #(char(read-string(str"2r"%)))(re-seq #"\d+"s)))
"Hello World"
golf> (apply str(map #(char(Long/parseLong % 2))(.split s" ")))
"Hello World"

3

কিউব্যাসিক, 103

s$=s$+" ":FOR i=1 TO LEN(s$):c$=MID$(s$,i,1):IF c$=" "THEN n=0:r$=r$+CHR$(n)ELSE n=n*2+VAL(c$)
NEXT:?r$

কি? আমাদের এখানে কোনও অভিনব বাইনারি থেকে দশমিক কার্যকারিতা নেই। নিজে করো!

আমি সম্পর্কে newline গণনা করছি (যা আমি মনে করি পেতে প্রয়োজনীয় হলে-তারপর-অন্য একটি ছাড়া END IF) এক বাইট, অনুযায়ী এই মেটা পোস্টে । আমি জানি না যে উইন্ডোজের কিউবি 64 কোনও কোড ফাইলটি সেভাবে গ্রহণ করবে কিনা। সম্ভবত খুব একটা ব্যাপার না।


2

নোডজেএস - 62

Buffer(s.split(' ').map(function(a){return parseInt(a,2)}))+''

পিএইচপি - 75

array_reduce(explode(' ', $b),function($a,$b){return $a.chr(bindec($b));});

আপনি কীভাবে এস 6 সামঞ্জস্যের সাথে নোডেজ চালাবেন? সর্বশেষ এক এখনও আমার জন্য ল্যামডা ফাংশন সমর্থন করে না
Bebe

@bebe তীর ফাংশনগুলি v8 এ প্রয়োগ করা হয়েছে তবে সেগুলি নোডের সাথে এখনও সংহত হয়নি। আমি আমার পোস্ট সম্পাদনা করব।
cPu1

@ সিপিই 1 তারা আমার পক্ষে কাজ করে
ব্যবহারকারীর

2

জাভাস্ক্রিপ্ট 111

এটি পার্সেন্ট বা ইওল ছাড়াই নম্বর রূপান্তরটি করে। স্ট্রিংটি পিছনের দিকে পড়া এবং বিটগুলি গণনা করা যদি এটি এক হয় তবে এটি বিট x সেট করে। কোনও স্থান পাওয়া গেলে একটি সংখ্যা একটি চরে রূপান্তরিত হয় এবং বিট সেট করার জন্য একটি নতুন 0 নম্বর শুরু হয় started

x=n=0,w='',s=' '+s
for(i=s.length;i--;){m=s[i]
if(m==1)n|=1<<x
x++
if(m==' ')w=String.fromCharCode(n)+w,n=x=0
}

1
পুরানো কায়দায় এটি করার জন্য +1 - আমাকেও কিউ বেসিক সংস্করণ লিখতে অনুপ্রাণিত করেছিল।
DLosc

অবৈধ, একটি ফাংশন বা পূর্ণ প্রোগ্রাম হওয়া প্রয়োজন (একটি যা ইনপুট নেয়)
এএসসিআইআই-কেবল


2

সিজেম, 11 বাইট

NS/{:~2bc}/

s সিজেমে কোনও আইনী পরিবর্তনশীল নাম নয়, সুতরাং আমি এর পরিবর্তে এন বেছে নিয়েছি ।

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

উদাহরণ রান

$ cjam <(echo '
> "1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100"
> :N;
> NS/{:~2bc}/
> '); echo
Hello World

কিভাবে এটা কাজ করে

NS/            " Split N at spaces.                            ";
   {     }/    " For each chunk:                               ";
    :~         "   Evaluate each character ('0' ↦ 0, '1' ↦ 1). ";
      2b       "   Convert from base 2 array to integer.       ";
        c      "   Cast to character.                          ";

2

হাস্কেল - 48 (+13 আমদানি (?))

হাসকেলে আমার প্রথম গল্ফ চেষ্টা এখানে।

map(chr.foldl1((+).(*2)).map digitToInt)$words s

আপনাকে ডেটা.চর আমদানি করতে হবে

ব্যবহার (জিএইচসিআই):

Prelude> :m +Data.Char
Prelude Data.Char> let s = "1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100"
Prelude Data.Char> map(chr.foldl1((+).(*2)).map digitToInt)$words s
"Hello World"

ব্যাখ্যা:

map(chr.foldl1((+).(*2)).map digitToInt)$words s
                                        $words s -- split s on spaces into a list
                         map digitToInt          -- convert each digit in input string to int
              ((+).(*2))                         -- a function that multiplies its first 
-- argument by 2, then adds the second argument
        foldl1((+).(*2)).map digitToInt          -- fold the above over the list of ints: 
-- in other words this is a function that reads strings as binary and gives the value as int
   (chr.foldl1((+).(*2)).map digitToInt)         -- cast to character
map(chr.foldl1((+).(*2)).map digitToInt)$words s -- map our function over the list of words

আশা করি আমি আমদানি সম্পর্কিত সঠিকভাবে স্কোরিং কনভেনশন অনুসরণ করেছি। আমি না থাকলে একটি সংশোধন করতে নির্দ্বিধায় মনে হয়। 13 এর হিসাবে ঘিচিতে আমদানি করার জন্য ": মি + ডেটা.চর" ব্যবহার করেছি
বলস্টে 25

1

জিএনইউ সেড, 19 বাইট

একটি দুর্দান্ত @ ডিজিটাল ট্রমা জবাব দ্বারা অনুপ্রাণিত ।

Golfed

s/\w*/dc -e2i&P;/eg

পরীক্ষা

echo 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100|\
sed 's/\w*/dc -e2i&P;/eg'

Hello World

1

পাইথ, 7 বাইট (প্রতিযোগী নয়)

smCid2c

স্ট্রিং হিসাবে ইনপুট লাগে।

চেষ্টা করে দেখুন!


অ-প্রতিযোগিতামূলক হিসাবে চিহ্নিত হয়েছে কারণ ভাষা চ্যালেঞ্জের চেয়ে নতুন।
mbomb007

1

05 এ বি 1 ই , 4 বাইট (প্রতিযোগী নয়)

ইমেনাকে 3 বাইট সংরক্ষণ করা হয়েছে

#CçJ

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


1
#CçJকাজ করে। যদিও এই এবং আপনার উভয় সংস্করণে ইনপুটটি কেবলমাত্র 1 চর হতে পারে তার ð¡পরিবর্তে আপনার প্রয়োজন #
এমিগানা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.