অন্তর্নির্মিত বেস রূপান্তর ছাড়াই বেস 10 থেকে বেস 2 তে রূপান্তর করুন


16

পটভূমি :

কোনও প্রাক তৈরি বেস রূপান্তর ফাংশন ব্যবহার না করেই আপনাকে বেস 10 নম্বরগুলি বেস 2 তে রূপান্তর করার জন্য একটি অ্যাসাইনমেন্ট দেওয়া হয়েছে। আপনি কোনও আমদানি করা লাইব্রেরি ব্যবহার করতে পারবেন না।

সমস্যা :

বেস 10 (দশমিক) থেকে বেস 2 (বাইনারি) এ একটি ইনপুট স্ট্রিং রূপান্তর করুন। আপনি কোনও প্রাক তৈরি বেস রূপান্তর কোড / ফাংশন / পদ্ধতি বা আমদানিকৃত লাইব্রেরি ব্যবহার করতে পারবেন না। যেহেতু এটি , তাই বাইটের সংক্ষিপ্ত উত্তরটি জিতবে।

ইনপুট -32768 থেকে 32767 পর্যন্ত কোনও কিছু হবে (আপনার কোডে সাইন বাইট হ্যান্ডলিং অন্তর্ভুক্ত করুন)


3
প্রশ্ন: "সাইন বাইট হ্যান্ডলিং" এর অর্থ কী - আমি কি নেতিবাচক সংখ্যার জন্য "-xxxx" আউটপুট দেব? তারপরে আমাদের মধ্যে কিছু ভুল রয়েছে। আমি, আমি -১-এর জন্য "১১ ... ১১" আউটপুট হিসাবে (স্বাক্ষরবিহীন হিসাবে ওরফে)
ব্লেবলা999

বাইট হ্যান্ডলিংয়ে সাইন ইন করুন - স্বাক্ষরিত ভেরিয়েবলগুলির এমএসবি যদি তারা নেতিবাচক হয় তবে
TheDoctor

1
অবশ্যই, তবে আমি কি তাদের << চিহ্ন হিসাবে '-' আকারের পরে প্রিন্ট করতে হবে?
blabla999

@ blabla999 - না আপনি করবেন না
TheDoctor

3
the MSB of signed variables controls if they are negative- এটি সাইন বিটের মতো শোনাচ্ছে, তবে পরিসীমা থেকে যেমন -32768..32767বোঝা যায় আপনি 2 এর পরিপূরক চান। তাহলে আপনি কোনটি চান?
mniip

উত্তর:


4

গল্ফস্ক্রিপ্ট - 17 বাইট

~{.1&\2/}16*;]-1%

অন্তর্নির্মিতের চেয়ে খুব বেশি ভার্বোজ নয় ~2base


1
আমি গল্ফস্ক্রিপ্ট জানি না তবে কয়েকটি নমুনা রান আমাকে এই সিদ্ধান্তে পৌঁছে দেয় যে আপনাকে অপসারণ করা উচিত~
ব্যবহারকারীর 12205

@ace কারণ প্রাথমিক ইনপুটটি একটি স্ট্রিং "37", উদাহরণস্বরূপ, অপারেশন "37" & 1(ইনফিক্সে) একটি সেট-ভিত্তিক অপারেশন। ~সামনে একটি পূর্ণসংখ্যা ইনপুট পরিবর্তন করে।
primo

আমি এখানে আমার পরীক্ষাটি গল্ফস্ক্রিপ্ট করেছিলাম ? (দুঃখিত আমি গল্ফস্ক্রিপ্ট সম্পর্কে কিছুই জানি না)
ব্যবহারকারী 12205

2
দোভাষী সঠিক; যেহেতু আপনি পূর্ণসংখ্যা মানটিকে 10স্ট্যাকের উপরে ঠেলে দিয়েছেন , এটির মূল্যায়ন করার প্রয়োজন নেই। যাইহোক, পড়ার পরে stdin, ইনপুটটি একটি স্ট্রিং হবে ( এখানে পরীক্ষা করা হবে )। সমস্যার বর্ণনাটিও স্পষ্টভাবে বলে দেয় যে ইনপুটটি একটি স্ট্রিং।
primo

12

জাভাস্ক্রিপ্ট, 46

for(x=prompt(o='');x;x>>>=1)o=(x&1)+o;alert(o)

লোল, আমি জানতাম না যে একটি 4-অক্ষর অপারেটর ( >>>=) আছে! +1 (এছাড়াও, আপনি যদি এটি কনসোলে চালনা করেন তবে আপনি সর্বশেষ 9 টি অক্ষর সংরক্ষণ করতে পারেন))
ডোরকনব

1
এটি 4-অক্ষর নয়, এটি দুটি অপারেটর: >>> হল 0-ফিলিং বিটওয়াইস ডান শিফট, তার পরে একটি অ্যাসাইনমেন্ট। চেষ্টা করুন: x=8; x>>>=1; x;এবং x=8; x>>>1; x;- প্রথম ক্ষেত্রে x এর মান পরিবর্তন হয়েছে; দ্বিতীয়টি, এটা না।
গ্রাহাম চার্লস

3
@ গ্রাহাম চার্লস >>>=একটি একক অপারেটর
primo

ঠিক আছে, দেখুন! ধন্যবাদ, @ প্রিমো ... আপনি প্রতিদিন কিছু শিখুন!
গ্রাহাম চার্লস

2
@কমফ্রিক যা অঙ্কগুলির ক্রমটিকে বিপরীত করবে
অনুলিপি করুন

4

ব্রেইনফ * সি কে, 98 77

স্পষ্টতই এটি জয়ের উদ্দেশ্য নয়, তবে এর একটি ব্রেইনফেক সমাধান না থাকলে একটি প্রতিযোগিতা কী হবে

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

যেহেতু ব্রেইনফেক কেবল 8 বিট পূর্ণসংখ্যাগুলি পরিচালনা করতে পারে এবং কোনও নেতিবাচক হিসাবে আমি অনুমান করি যে এটি নিয়মগুলি পুরোপুরি মেনে চলে না তবে আরে আমি এটিতে জিততে কখনই ছিলাম না।

আপনার দোভাষী যদি সমর্থন করে তবে এটি প্রকৃতপক্ষে 16-বিট ইনপুটটির জন্য কাজ করে

এমনকি আমি এটি অসি মানগুলিতে আউটপুট পেয়েছি

এখানে বর্ণিত কোডটি দেওয়া হয়েছে:

++[>++++<-]                       preload 8 onto cell 1
>>,<                                input into cell 2
[-                                  iterate over cell 1
    >>++<                               put 2 in cell 3
    [->-[>+>>]>[+[-<+>]>+>>]<<<<<]      division algorithm: converts {n d} into {0 d_minus_n%d n%d n/d}
    >[-]++++++[->++++++++<]>           clears cell 4 and puts 48(ascii of 0) into cell 5
    .[-]                                output n%2 and clear it (the bit)
    >[-<<<+>>>]                         bring n/2 into cell 2 (to be used for division in next iteration)
<<<<]                               end iterate

সংক্ষিপ্ত অ্যালগোরিদম (77):

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

এটি কেবলমাত্র 8 বিট ইন্টিজারগুলি পরিচালনা করতে পারে।

অ্যালগরিদম একটি বাইনারি কাউন্টার ব্যবহার করে কাজ করে যা আসলে খুব সংক্ষিপ্ত (এক বর্ধিততা >[->]++[-<+]-<-যা পরে বিটগুলি আউট দেয় The ইস্যুটি হ'ল সমস্ত বিট মুদ্রণ করা বেশ কঠিন

এই শেষ অ্যালগরিদমটি বাইটের ব্যয়ে যে কোনও সংখ্যা বিট মাপসই করা যেতে পারে। এন বিট পূর্ণসংখ্যার সাথে ডিল করতে সক্ষম হতে, এটি এনকোড করার জন্য 53 + 3 * এন বাইট প্রয়োজন।

উদাহরণ:

(1 bit) +>,>-<[>>[->]++[-<+]-<-]++++++++[->++++++<]>+[->+<]>[.>]
(2 bit) +>,>-<[>>[->]++[-<+]-<-]++++++++[->++++++<]>+[->+>+<<]>[.>]
(3 bit) +>,>-<[>>[->]++[-<+]-<-]++++++++[->++++++<]>+[->+>+>+<<<]>[.>]
etc

3

বাধ্যতামূলক এপিএল উত্তর - 21 22

"01"[1+2|⌊⎕÷2⋆⊖0,⍳15]

উদাহরণ:

      "01"[1+2|⌊⎕÷2⋆⊖0,⍳15]
⎕: 0
0000000000000000
      "01"[1+2|⌊⎕÷2⋆⊖0,⍳15]
⎕: 13
0000000000001101
      "01"[1+2|⌊⎕÷2⋆⊖0,⍳15]
⎕: 9999
0010011100001111
      "01"[1+2|⌊⎕÷2⋆⊖0,⍳15]
⎕: -3
1111111111111101
      "01"[1+2|⌊⎕÷2⋆⊖0,⍳15]
⎕: 32767
0111111111111111

ব্যবহার করে আপনি প্রায় 50% সঙ্গে কমে যায় ⎕IO←0, এবং একটি স্ট্রিং এর পরিবর্তে বিট একটি অ্যারের ফিরে: 2|⌊⎕÷2*⊖⍳16
অ্যাডম

3

ট্যুরিং মেশিন কোড, 272 বাইট

যথারীতি আমি এখানে সংজ্ঞায়িত নিয়ম টেবিল সিনট্যাক্স ব্যবহার করছি আপনি এই জাভা প্রয়োগটি ব্যবহার করে that সাইটে বা বিকল্পভাবে এটি পরীক্ষা করতে পারেন

আমার দশমিক-থেকে-হেক্স রূপান্তরকারী থেকে প্রচুর কোড অনুলিপি করা হয়

0 * * l B
B * * l C
C * 0 r D
D * * r E
E * * r A
A _ * l 1
A * * r *
1 0 9 l 1
1 1 0 l 2
1 2 1 l 2
1 3 2 l 2
1 4 3 l 2
1 5 4 l 2
1 6 5 l 2
1 7 6 l 2
1 8 7 l 2
1 9 8 l 2
1 _ * r Y
Y * * * X
X * _ r X
X _ _ * halt
2 * * l 2
2 _ _ l 3
3 * 1 r 4
3 1 0 l 3
4 * * r 4
4 _ _ r A

বেস 2-তে 0 থেকে গণনা করার সময় বেস 10-এ ইনপুট থেকে নীচে গণনা করা হয় শূন্য হ্রাসের পরে, এটি ইনপুট ব্লকটি মুছে ফেলে এবং সমাপ্ত হয়।



2

পার্ল, 44

এটি আমার প্রথম পার্ল প্রোগ্রাম, তাই দয়া করে আমাকে ক্ষমা করুন যদি এটিকে আরও সহজেই আরও ঝলক দেওয়া যায়। সম্পাদনা করুন: আমার উত্তর থেকে cha টি অক্ষর নেওয়ার জন্য আপনাকে প্রিয়মো ধন্যবাদ জানায়।

$x=<>;do{@s=($x&1,@s)}while($x>>=1);print@s

$x=<>;do{push@s,$x&1}while($x>>=1);print reverse@s

যুক্তিটি মূলত আমার আগের সি সমাধানের সমান।

এছাড়াও, 64 বিট ব্যবহার করে।


1
আপনি সংরক্ষণ করতে পারবেন reverseঅ্যারের পিছন নির্মাণের দ্বারা: @s=($x&1,@s)
primo

1
এখন যে প্রতিযোগীতা শেষ, সেরা আমি দেখেছি 34 ছিল: $\=$_%2 .$\while$_=$_>>1||<>;print। অথবা, যদি কমান্ড লাইন বিকল্পগুলি প্রতিটি বাইট গণনা করে, 27: 1while$\=$_%2 .$\,$_>>=1}{ব্যবহার করে -p
primo

2

জাভাস্ক্রিপ্ট - 56 48 এবং 36 28 টি অক্ষর

  • নেতিবাচক সংখ্যা নিয়ে কাজ করে না।

8 টি অক্ষর শেভ করার জন্য ব্লেন্ডারকে ধন্যবাদ

এই ফর্মটি ইনপুট নেয় এবং আউটপুট দেখায়, 48 টি অক্ষর:

x=prompt();for(a="";x;x=~~(x/2))a=x%2+a;alert(a)

যদি কেবলমাত্র কোনও নির্দেশের পরিবর্তে ভেরিয়েবলের aবাইনারি রূপের xপ্রয়োজন হয় (এবং আপনি xমানটিকে পার্শ্ব-প্রতিক্রিয়া হিসাবে ধ্বংস করতে বিরক্ত করবেন না ), এখানে এটি 28 টি অক্ষর সহ:

for(a="";x;x=~~(x/2))a=x%2+a

1
সংখ্যার পরিসর কম হওয়ায় আপনি এর Math.floorসাথে প্রতিস্থাপন করতে পারেন ~~
ব্লেন্ডার

@ ব্লেন্ডার ধন্যবাদ, আমি জানতাম যে এখানে কিছু উপায় আছে, কেবল এটি খুঁজে পাওয়া যায়নি।
ভিক্টর স্টাফুসা

@ ভিক্টর আমি জাভাস্ক্রিপ্ট জানি না তাই আমি ভুল হতে পারি তবে শেষে আপনি যখন বলবেন a=x%2+aএটি কি সংক্ষিপ্ত করা যেতে পারে a+=x%2? এটি আমার জানা সমস্ত ভাষায় কাজ করে।
অ্যালবার্ট রেনশওয়া

@ অ্যালবার্ট রেনশওয়া নং, এটি একইরকম হবে a=a+x%2তবে এটি +স্ট্রিং কনটেন্টেশনের জন্য। অর্থাৎ, আপনার পরামর্শ পিছনের ক্রমে অঙ্কগুলিতে ফলাফল করে।
ভিক্টর স্টাফুসা

@ ভিক্টর আহ! ধন্যবাদ!
অ্যালবার্ট রেনশওয়া

2

পাইথন - 61 60 টি অক্ষর

x=input();print"".join("01"[x>>i&1]for i in range(15,-1,-1))

2
আপনি printএবং এর মধ্যে স্থান থেকে মুক্তি পেতে পারেন ""
ব্লেন্ডার

@ ব্লেন্ডার আমি ঠিক একই জিনিসটির পরামর্শ দিতে চলেছিলাম :)
অ্যালবার্ট রেনশো

@ ব্লেন্ডার হা সত্য, খেয়ালও করেননি। সম্পন্ন!
C0deH4cker

আপনি যদি কমান্ড-লাইন থেকে কল করেন তবে আপনি printস্বয়ংক্রিয়ভাবে ফলাফলটি ফেরত দেওয়ার কারণে আপনি একদিকে রেখে যেতে পারেন
পল.ওডারস

2

সি, 55 টি অক্ষর

অতিরিক্ত লিডিং শূন্য প্রিন্ট করে (2 বাইটের জন্য)
পুনরাবৃত্তির মধ্যে printfমুদ্রণ ক্রমের বিপরীত হয়, সুতরাং অ্যালগরিদমগুলি ডান থেকে বামে বিটগুলি বিট করে তবে বাম থেকে ডানদিকে প্রিন্ট করে।

সম্পাদনা : putcharপরিবর্তে ব্যবহার করে একটি চর সংরক্ষণ করা printf

f(x){(x*=x<0?-printf("-"):1)&&f(x/2);putchar(48+x%2);}

2

ডায়ালগ এপিএল , 11 বাইট

2|⌊⎕÷2*⌽⍳16

2|বিভাগ বাকি যখন আধলা
এর বৃত্তাকার নিচে মান
ইনপুট
÷প্রতিটি দ্বারা বিভক্ত
2*দুই প্রতিটি ক্ষমতায়
⍳16{0, 1, 2, ..., 15}

প্রয়োজন ⎕IO←0অনেক সিস্টেমে পূর্বনির্ধারিত।

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


1

সি, 81

char b[17];i=15;main(x){scanf("%d",&x);while(i+1)b[i--]=(x&1)+48,x>>=1;puts(b);}

আউটপুটটিতে কঠোরভাবে 16 বিট রয়েছে (প্যাডিং জিরো সহ)


1

অ্যাপস স্ক্রিপ্ট + গুগল শিটস, 147 144 121 বাইট

লিপি

function j(decNumb){var str='';do{str=String(decNumb%2)+str;decNumb=decNumb/2|0;}while(decNumb>=1);return parseInt(str);}

চাদর

=j(b1)

জাইজিডি দ্বারা এই স্ক্রিপ্টটির পরিবর্তিত সংস্করণ ।


আপনি কোন স্থান সরাতে পারেন?
নন ইনিহির

1

হাস্কেল, 66 বাইট

c 0=0
c n=c(div n 2)*10+mod n 2
b('-':r)='-':b r
b r=show.c.read$r

সাথে কল করুন b "-1023", main=interact bএকটি সম্পূর্ণ প্রোগ্রামের জন্য যুক্ত করুন বা আইডিয়নে চেষ্টা করুন।

cধনাত্মক পূর্ণসংখ্যার জন্য রূপান্তর সম্পাদন করে।
b r=show.c.read$rএকটি স্ট্রিংকে একটি সংখ্যায় cরূপান্তর করে , প্রয়োগ করে এবং স্ট্রিংয়ে ফিরে রূপান্তর করে।
b('-':r)='-':b rএকটি সম্ভাব্য নেতৃস্থানীয় স্ট্রিপস -এবং ফলাফলটিতে এটি পুনরায় সংযোজন করে।


1

পাওয়ারশেল, 59 87 82 70 বাইট

নেতিবাচক সংখ্যাগুলি সমর্থন করার জন্য +28 বাইট।
-12 বাইটস কেবলমাত্র ASCII- এর জন্য ধন্যবাদ

param($d)$m=$d-lt0;while($d){$n="01"[$d%2]+$n;$d=($d-$d%2)/2}'-'*$m+$n

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

এই কোড থেকে অভিযোজিত । কমান্ডলাইন প্যারামিটারের মাধ্যমে ইনপুট নেয় -d


চিহ্ন সহ সংখ্যা সম্পর্কে কী?
mazzy



ওহ অপেক্ষা করুন 70
ASCII- কেবল

1

এপিএল (এনএআরএস), 17 টি চর, 34 বাইট

{2∣⌊⍵÷2*(⍺-1)..0}

এটি যেভাবে বিটস দৈর্ঘ্যের জন্য প্যারামিটার যুক্ত করতে পারে সেভাবে /codegolf//a/90107 এ অ্যাডাম উত্তরটির অনুলিপি এবং সংশোধন করা উচিত এবং এই ফাংশনের জন্য Oআইও (এখানে ⎕IO = 1) হওয়া উচিত কোন গুরুত্ব নেই ...

  f←{2∣⌊⍵÷2*(⍺-1)..0}
  16 f 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
  32 f 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 
  32 f ¯1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
  16 f ¯1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
  64 f ¯12345678
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 

এটি সহজেই এইভাবে বিটের সংখ্যা হ্যান্ডেল করে দেখায় (আমি চেক করেছিলাম যে শেষ ফলাফলটি সঠিক হওয়া উচিত)


0

স্মলটাক (স্মলটালক / এক্স), 63/78

প্রথম সংস্করণ একটি মধ্যবর্তী স্ট্রিং তৈরি করে (78):

t:=Number readFrom:Stdin.
((15to:1by:-1)collect:[:i|$0+(t>>i&1)]as:String)print

আসলে, স্ট্রিং তৈরি করার প্রয়োজন নেই; কেবল চরগুলি আউটপুট করুন (63৩):

t:=Number readFrom:Stdin.
15to:1by:-1 do:[:i|($0+(t>>i&1))print]

এমএইচএমএইচ - কোনও সংখ্যায় পড়ার জন্য আরও ছোট উপায় আছে?


0

পাইথন 3.x: 65 টি অক্ষর

b=lambda n:n<2 and'01'[n]or b(n//2)+b(n%2);print(b(int(input())))

0

বাশ, 44

f=b+=n/2**e%2*10**e,2**e++/n?f=b:f;echo $[f]

এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে স্ক্রিপ্টটিতে একটি ইনপুট মান দিন n। বাইনারি ফলাফলের দশমিক প্রতিনিধিত্ব অতিক্রম করতে পারে নাLONG_MAX

এটি এছাড়াও সাথে সামঞ্জস্যপূর্ণ হওয়া উচিত ksh93এবং zshযদি bএবং eএর সাথে আরম্ভ হয় 0এবং সঠিক গাণিতিক সম্প্রসারণ ব্যবহৃত হয়।


1
আমি এটি বৈধ বলে বিশ্বাস করি না কারণ এটি ধরে নিয়েছে যে nএটি ইতিমধ্যে সংজ্ঞায়িত করা হয়েছে, এটি একটি স্নিপেট তৈরি করে। কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট গ্রহণ nকরে এবং আপনার স্ক্রিপ্টে সেটি সেট করে এটি ঠিক করা যেতে পারে ।
একটি স্প্যাগেটো

শ্বেলে গণিতের প্রসঙ্গে কুইয়ারটা ভেরিয়েবলগুলি সুস্পষ্টভাবে শূন্য। গল্ফের উদ্দেশ্যে এটি করার n=127 sh -c '...'চেয়ে আরও বেশি বোঝা যায় sh -c 'n=$1 ...' _ 127। এক্ষেত্রে একে অপরের চেয়ে পছন্দ করার কোনও কারণ নেই কারণ তারা মানগুলি পাস করার জন্য উভয়ই নিখুঁতভাবে সাধারণ উপায়।
ormaaj

0

সি # - 104

string p(int d){var r="";long i=1;while(r.Length<=64){var g=d&i;r=(g!=0)? "1"+r:"0"+r;i=i<<1;}return r;}

এই পদ্ধতিটি দশমিক দশকে বাইনারি পর্যন্ত 64বিটগুলিতে রূপান্তর করবে ।

লিনকপ্যাডে উপরের পদ্ধতিটি কার্যকর করা হলে - rr = p (-32768); rr.Dump ();

আউটপুট: 01111111111111111111111111111111111111111111111111000000000000000


অনুমানটি "একটি ইনপুট স্ট্রিং" জন্য কল করে। দেখে মনে হচ্ছে এই পদ্ধতিটি কোনও গ্রহণ করে int
পোকে

0

জাভা 8, 80 71 বাইট

n->{String r="";for(int i=n<0?-n:n;i>0;i/=2)r=i%2+r;return n==0?"0":r;}

মন্তব্যগুলিতে একটি নিয়মের কারণে -9 বাইটস .. নেতিবাচক বেস -10 ইনপুটগুলি আউটপুট হিসাবে আপাতভাবে ধনাত্মক / পরম বেস -2 মান প্রদান করতে পারে।

ব্যাখ্যা:

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

n->{                   // Method with integer parameter and String return-type
  String r="";         //  Result-String, starting empty
  for(int i=n<0?-n:n;  //  Start `i` at the absolute (non-negative) value of the input
      i>0;             //  Loop as long as `i` is not 0
      i/=2)            //    After every iteration: integer-divide `i` by 2
    r=i%2+r;           //   Prepend the result with `i` modulo-2
  return n==0?         //  If the input is 0:
          "0"          //   Return literal "0"
         :             //  Else:
          r;           //   Return the result-String


0

ছোট বেসিক , 133 বাইট

একটি স্ক্রিপ্ট যা TextWindowকনসোল থেকে ইনপুট দেয় এবং আউটপুট দেয় ।

n=TextWindow.Read()
While n>0
c=c+1
x[c]=Math.Remainder(n,2)
n=Math.Floor(n/2)
EndWhile
For i=0To c-1
TextWindow.Write(x[c-i])
EndFor

স্মলব্যাসিক.কম এ এটি ব্যবহার করে সিলভারলাইটের প্রয়োজন এবং এটি অবশ্যই আইইতে চালানো উচিত।

ব্ল্যাক কনসোল থেকে I / O নেওয়া / দেওয়া হয়।

-22 বাইট @ নীল ধন্যবাদ


আপনি ব্যবহার করতে পারবেন না For i=0To c-1?
নিল

@ নীল - আমি একেবারে পারি দুর্দান্ত ধর!
টেলর স্কট 21

0

এমএটিএল , 15 17 বাইট

t0<?16Ww+]`2&\t]x

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

Tio

(+2 বাইটগুলি নেতিবাচক সংখ্যার জন্য নেতৃস্থানীয় 0 অপসারণ করছে, সাইন বিটটি প্রথম বিট হওয়া উচিত))

এমএটিএল অনলাইনে আউটপুটটি নীচের অংশে পড়তে হবে (এমএসবি নীচে রয়েছে)।

মূল অংশটি বেশ সহজ: `2&\t = যখন মান 0 এর চেয়ে বেশি হয়, 2 দিয়ে ভাগ হয়ে যায় এবং বাকী অংশগুলিকে একত্রিত করে।

নেতিবাচক সংখ্যাগুলি পরিচালনা করা এবং তাদের 2 টির পরিপূরক প্রতিনিধিত্ব দেওয়া ছিল জটিল অংশ। শেষ পর্যন্ত আমি " বিয়োগফল থেকে নিয়েছিলাম "2এন"একটি সংখ্যার দুইটির পরিপূরক পাওয়ার পদ্ধতি Since যেহেতু আমাদের কেবলমাত্র -32768 অবধি মানগুলি পরিচালনা করতে হবে, তাই কোডটি তৈরি করে নেতিবাচক সংখ্যার জন্য 216=65536এর সাথে 16Wএতে ইনপুট যুক্ত হয় (উদা। 65536 + (-42)), যা ম্যাটল্যাবকে এমন কিছু দেয় যা ইতিবাচক সংখ্যা হিসাবে দেখায় কিন্তু ইনপুটটির স্বাক্ষরিত বাইনারি প্রতিনিধিত্ব করে 16-বিট আকারে।




আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.