রঙিন আরজিবি ইন টু হেক্স


13

তিনটি পূর্ণসংখ্যার আরজিবি দেওয়া হয়েছে, স্ট্রিং হিসাবে আউটপুট হেক্সাডেসিমাল উপস্থাপনা।

Input:          Output:
72 61 139       #483D8B
75 0 130        #4B0082
0 255 127       #00FF7F

সংক্ষিপ্ততম অপ্রচলিত কোড জয়ী


16
আমাদের FAQ বলছে এই সাইটের সমস্ত প্রশ্নের ... একটি উদ্দেশ্যমূলক প্রাথমিক বিজয়ী মানদণ্ড হওয়া উচিত, যাতে কোন প্রবেশিকাটি জিততে হবে তা নির্বিচারে সিদ্ধান্ত নেওয়া সম্ভব। । সংক্ষিপ্ততম উদ্দেশ্য, তবে "সর্বাধিক নিরপেক্ষ" নয়। এছাড়াও, কোড-গল্ফ ট্যাগটি কেবল তখনই ব্যবহার করা উচিত যদি বিজয়ী শর্তটি কেবল সংক্ষিপ্ততম কোড হয়; এবং কোড-চ্যালেঞ্জ ট্যাগটি কেবল তখনই ব্যবহার করা উচিত যখন কোড-গল্ফ ট্যাগ না থাকে।
পিটার টেলর

এবং কিছু সময়ের আগে বিজয়ীকে গ্রহণ করুন (এক্ষেত্রে 24
ঘন্টাও

@ পিটারটেলর দুঃখিত, আমি এখন থেকে গাইডলাইনগুলি পড়তে নিশ্চিত করব :( আমি অনুমান করি যে আপনি সঠিক
রীতিবিরোধী

উত্তর:


14

রুবি: 19 টি অক্ষর

$_=?#+"%02X"*3%$F

নমুনা রান:

bash-4.1$ ruby -pae '$_=?#+"%02X"*3%$F' <<< '72 61 139'
#483D8B

bash-4.1$ ruby -pae '$_=?#+"%02X"*3%$F' <<< '75 0 130'
#4B0082

bash-4.1$ ruby -pae '$_=?#+"%02X"*3%$F' <<< '0 255 127'
#00FF7F

16

চুনি

আমি "অপ্রচলিত" অংশের জন্য আরও যাচ্ছিলাম। ;)

10;a=    gets.   split
.  map  {|       x|  #x
"%02X"  %(  x.   to_i)
}; $>   <<   ?#  <<  a[
00  ..   1+2].   join;

ফন্টটি (আমার ওয়েব ব্রাউজারে) কিছুটা লম্বা, তাই এটি বিকৃত দেখাচ্ছে তবে কুরিয়ার নিউতে এটি আরও ভাল দেখাচ্ছে:

ভাবমূর্তি

নমুনা রান:

c:\a\ruby>rgb2hex
255 100 0
#FF6400


6

কিউ / কে (3 টি অক্ষর)

একেবারে অপ্রচলিত নয়, তবে বেশ ছোট

4h$

উদাহরণ

q)4h$ 72 61 139
0x483d8b

প্রশ্নের আউটপুট ফর্ম্যাটটি হুবহু মেলাতে আমরা করতে পারি (9 টি অক্ষরের জন্য):

"#",/$4h$

1
এতে প্রশ্নের মধ্যে থাকা নমুনা আউটপুটগুলির জন্য প্রয়োজনীয় পাউন্ড চিহ্ন (#) নেই missing
ইসজি

5

পাওয়ারশেল: 71 52 51 41

লুপের ForEach-Objectজায়গায় নির্দেশ করার জন্য @ মান্যাটওয়ার্ককে ধন্যবাদ for
ভঙ্গুতে এটির -joinপরিবর্তে লুপ আউটপুটটিতে আমি ব্যবহার করতে পারব বলে জোয়িকে ধন্যবাদ জানাই Thanks

গল্ফ কোড:

'#'+-join(1..3|%{"{0:X2}"-f+(read-host)})

বিঃদ্রঃ:

এখানে অবৈধ ইনপুটগুলি পরীক্ষা করার ক্ষেত্রে কোনও ত্রুটি নেই। স্ক্রিপ্টটি আনন্দের সাথে ইনপুট হিসাবে 256, 4096 এবং 65536 নেবে, তারপরে আউটপুট # 100100010000 (যা সম্ভবত আরজিবি হিসাবে কাজ করবে না)।

মতামত সহ উজ্জ্বল:

# Put a hashtag in front of the output.
'#'+

# Join the nested code into one string.
-join(

    # Pipe 1..3 to ForEach-Object to run a loop three times.
    1..3|%{

        # Take user input and format it as hex, with minimum two digits in output.
        "{0:X2}"-f+(read-host)
    }
)

foreach($i in 1,2,3)এটি 68 টি অক্ষরে কমাতে লুপটি তৈরি করুন ।
manatwork

@ মান্যাট ওয়ার্ক আমি মনে করি না এটি পাওয়ারশেলের কোনওর জন্য উপযুক্ত সিনট্যাক্স foreach। (কমপক্ষে, আমি কাজ করার জন্য কিছু পরীক্ষার রান পেতে সক্ষম হইনি)) তবে, ডান সিনট্যাক্স ব্যবহার করে, একটি বিল্ট-ইন ওরফে এবং অন্য পাওয়ারশেল শর্টকাট আমি সম্প্রতি আবিষ্কার করেছি, আমি মনে করি আমার আরও ভাল কিছু হয়েছে, শেভিং আপনার পরামর্শের বাইরে আরও 12 টি অক্ষর। (1..3)|%{...}(উপবৃত্তির স্থলে বিদ্যমান স্ক্রিপ্ট থেকে বন্ধনীযুক্ত বিবৃতি সন্নিবেশ করান)) আমাকে এখনও স্ক্রিপ্টে এটি পুরোপুরি পরীক্ষা করা দরকার, তবে আমাকে সেদিকে নির্দেশ করার জন্য ধন্যবাদ!
ইসজি

এটি সঠিক সিনট্যাক্স কিনা তা নয়, তবে এসএস 64 রেফারেন্সটির জন্য foreachএটি উল্লেখ করা হয়েছে এবং এটি আমার পক্ষে কাজ করে। (সংস্করণ সম্পর্কে কোন ধারণা এক যা 7. উইন্ডোজের সাথে আসেন।)
manatwork

@ মান্যাটওয়ার্ক এটি আকর্ষণীয় আমি কাছাকাছি খনন করতে এবং এটির মধ্যে আরও কী কী আছে তা খুঁজে বের করতে চাই (আমি "..." ত্রুটিগুলিতে "..." ত্রুটি পেয়েছিলাম)) অন্য কিছু সময়। পাওয়ার শেলের ভিন্ন সংস্করণের জন্য এসএস 64 নিবন্ধটি লেখা সম্ভব - আমি নিশ্চিত নই। আপাতত, আমি নিশ্চিত হয়েছি যে এটি (1..3)|%কাজ করে এবং স্ক্রিপ্টটিকে 56 টি অক্ষরে নামায়। আমি এটি উত্তরে সম্পাদনা করব, এবং অবশ্যই আপনাকে ধারণার জন্য ক্রেডিট করব। আবার ধন্যবাদ!
ইসজি

2
ওহ, ডাং আপনি ব্যবহার করে 41 এই পেতে পারেন -join: '#'+-join(1..3|%{"{0:X2}"-f+(read-host)})
জোয়

4

বাশ 22 21 অক্ষর

( \ডাবল-কোটের পরিবর্তে 1 চরের জন্য @ মান্যাটওয়ার্ককে ধন্যবাদ )

printf \#%02X%02X%02X 12 12 12 
#0C0C0C

বা একটি লুপে STDIN পড়া : 48 টি অক্ষর:

while read f;do printf "#%02X%02X%02X\n" $f;done <<<$'72 61 139\n75 0 130\n0 255 127'
#483D8B
#4B0082
#00FF7F

যোগ করা হয়েছে 2015-10-06: বাশ (আরও প্রচলিত পদ্ধতি) 84 83 টি অক্ষর

c=({0..9} {a..f}) d=\#;for b;do for a in / %;do d+=${c[$b$a 020]};done;done;echo $d

আমি জানি, 020যেখানে লেখা আছে এটি 82 টি অক্ষর হতে পারে 16তবে আমি এটি পছন্দ করি ... বা সম্ভবত d+=${c[$b$a 0x10]}এটি প্রথম পোস্ট ছিল।

hexcolor() {
    local a b c=({0..9} {a..f}) d=\#
    for b ;do
        for a in / % ;do
            d+=${c[$b$a 0x10]}
        done
    done
    echo $d
}
hexcolor 72 61 139
#483d8b
hexcolor 75 0 130
#4b0082
hexcolor 0 255 127
#00ff7f

আরেকটি পদ্ধতির

#!/bin/bash
browser=firefox   #  google-chrome iceweasel
url="data:text/html;charset=UTF-8,<html><head></head><body>"
url+="<script type='text/javascript'>
  function h(i){var h=i.toString(16);if(16>1*i)h='0'+h;
  return h};function C(r,g,b){return'\043'+h(r)+h(g)+h(b)};
  function m(){ var r=1.0*R.value; var g=1.0*G.value; var b=1.0*B.value;
   var fore='black';if(384>r+g+b)fore='white';var c=C(r,g,b);
   s.setAttribute('style','background:'+c+';color:'+fore+';');s.innerHTML=c};
  function w(e){console.log(e);var val=e.target.value;var q=1;if(e.shiftKey)
  q=15;if(e.detail){if(e.detail>0){q=0-q;}}else if(0>e.wheelDelta){q=0-q;};
  val=1*val+q;if(val>255)val=255;if(0>val)val=0;e.target.value=val;m(); };
  function k(e){console.log(e);var val=e.target.value;var q=1;if(e.shiftKey)q=
  15;if(e.keyCode==38){val=1*val+q;if(val>255)val=255;e.target.value=val;m();}
  else if(e.keyCode==40){val=1*val-q;if(0>val)val=0;e.target.value=val;m();}};
  function n(){R=document.getElementById('R');G=document.getElementById('G');
    B=document.getElementById('B');s=document.getElementById('s');
    R.addEventListener('DOMMouseScroll',w);R.addEventListener('mousewheel',w);
    G.addEventListener('DOMMouseScroll',w);G.addEventListener('mousewheel',w);
    B.addEventListener('DOMMouseScroll',w);B.addEventListener('mousewheel',w);
  m();};var R, G, B, s;window.onload=n;
  </script><style>div{display:inline-block;width:10em;}</style>
  <div id='s'>&nbsp;</div>"
input="%s:<input type='text' size='5' value='200'"
input+=" onKeyDown='k(event)' onChange='m()' id='%s' />"
for c in R G B ;do
    printf -v add "$input" $c $c
    url+="$add"
  done    
$browser "$url"

এটি সহ একটি ব্রাউজার উইন্ডো প্রদর্শিত হবে:

আরজিবি ইন্ট 2 হেক্স ভিউয়ার রূপান্তরকারী

যেখানে আপনি মানগুলি পরিবর্তন করতে মাউসওয়েলটি রোল করতে পারেন (শিফট কী সহ 15 ধাপে ধরে রাখা) ...


প্রকৃতপক্ষে টার্মিনেটিং নিউলাইনটির অনুরোধ করা হয়নি এবং কেবল "#" পলায়নের প্রয়োজন, তাই printf \#%02X%02X%02Xযথেষ্ট।
manatwork

আরও একটি অপ্রচলিত পদ্ধতি যুক্ত করা হয়েছে :
এফ হাউরি

হাঃ হাঃ হাঃ. এই অভ্যন্তরীণ লুপটি সত্যই হতবাকভাবে অপ্রচলিত।
manatwork

@ মানাটওয়ার্ক ধন্যবাদ, আমি সেক্সিd+=${c[$b$a 0x10]} কিছু খুঁজে !
এফ হাউরি

1
... অথবা সম্ভবত d+=${c[$b$a 020]}কাজটি করবে এবং দেখতে সুন্দর লাগবে
এফ হৌরি

3

পার্ল, 31 টি অক্ষর

perl -nE 'say"#",map{unpack H2,chr}split'

এ জাতীয় একটি সংক্ষিপ্ত প্রোগ্রামটি অযৌক্তিকভাবে করা শক্ত, তবে আমি মনে করি এটি কার্যকর হয়।


আমি এই উত্তরটি পছন্দ করি :) আরও কয়েকটি এবং আমি মনে করি যে এর থেকে আরও ভাল কিছু না ঘটিয়ে আমি এটি স্থির করতে পারি।
কুইলিয়ন

শান্ত! কেবলমাত্র একটি unpackপ্রশ্ন: আপনি কি প্রশ্নটির মতো হেক্সাডেসিমাল a..f বড় হাতের তৈরি করতে পারেন?
manatwork

@ মান্যাটওয়ার্ক আমি এর ভিতরে করার উপায় খুঁজে পাওয়ার চেষ্টা করেছি unpack, তবে কোনও ভাগ্য নেই। এর sprintfপরিবর্তে একটি উপায় হ'ল unpackতবে এটি দীর্ঘ এবং সম্পূর্ণ গোঁড়া। অন্য উপায়টি হ'ল স্ট্রিংকে বড় হাতের অক্ষরে পরিবর্তন করা: map{uc unpack H2,chr}তিনটি অক্ষরের ব্যয়।
ব্রেডবক্স

আপনাকে ধন্যবাদ, ব্রিডবক্স। যারা কৃপণ সামান্য packএবং unpackআমার কোডিং শৈলীতে getুকেনা। সুতরাং এটি আমার জন্য যথেষ্ট প্রচলিত or
manatwork

ভুল গণনা। এটি 30 চর তৈরি!
এফ। হাউরি

3

অ্যাকশন স্ক্রিপ্ট 3 | 43 টি অক্ষর

trace("#"+(72<<16|61<<139|b).toString(16));

আউটপুট: #483D8B


আপনি এখানে অনেক সাদা জায়গা বাদ দিতে পারবেন না? আমি অ্যাকশন স্ক্রিপ্ট জানি না, তবে সেগুলি প্রয়োজনীয় দেখায় না
ক্রাঙ্কার

@ ক্র্যাঞ্চার হ্যাঁ দুঃখিত, আমার প্রথম উত্তরগুলির মধ্যে একটি এখানে।
ইলিয়া গাজমান

2
একটি চর সংরক্ষণ করতে শেষে সেমিকোলনটি মেরে ফেলুন
ডুরকনব

3

পার্ল 24 অক্ষর

perl -ne 'printf"#"."%02x"x3,split'
13 31 133
#0d1f85

দুঃখিত, এটি ব্যবহারের চেয়ে সেক্সি নয় unpack, তবে খাটো!

আরও অস্পষ্ট সংস্করণ:

তবে আপনি যদি সত্যিই ব্যবহার করতে পছন্দ করেন unpackতবে আপনি তা করতে পারেন:

$==24;s/\d+[\n ]*/{$=-=8;($&<<$=).do{rand>.5?qw<+>[0]:"|"}}/eg;$_=
pack("N",eval($_.587.202.560));say$1,unpack("H6",$2)if/^(.)(.*)$/s

নমুনার জন্য, এটি সংক্ষিপ্ত সংস্করণ নয়, তবে আমি এটি পছন্দ করি! (এটি রেন্ডারিংয়েরrand জন্য ব্যবহারের নোট করুন :-)

perl -nE '
    $==24;s/\d+[\n ]*/{$=-=8;($&<<$=).
    do{rand>.5?qw<+>:"|"}}/eg;$_=pack(
    "N",eval($_.587.202.560) );say $1,
    unpack("H"."6",$2) if /^(.)(.*)$/s
  ' <<< $'72 61 139\n75 0 130\n0 255 127'
#483d8b
#4b0082
#00ff7f

3

> <> 103 60

"#"or>1[:82*%:}-82*,86*+:"9"v
    ;^?l ]o+*7)"9":+*68o+*7)<

নষ্ট সাদা স্থান ব্যবহার করে এবং এতে কিছু কোড সরিয়ে নিয়েছে

কমান্ড লাইন ইনপুট দিয়ে চালান:

python fish.py generateHex.fish -v 255 36 72

আউটপুট: "# FF2448"


অনুরোধে ব্যাখ্যা প্রদান করবে। যদি আপনি এটি বুঝতে পারেন আমি বরং বিরক্ত করব না
ক্রাঙ্কার

2

চতুর্থ, 62 টি অক্ষর

: D 0 <<# # # #> TYPE #>> ; 35 EMIT HEX SWAP ROT D D D DECIMAL

1 1 1 এর জন্য কাজ করে না যা আউটপুট করা উচিত # 010101
র‌্যাচেট ফ্রিক

হাই @ratchetfreak। এটা আমার জন্য কাজ করে. শুধু gforth সঙ্গে পরীক্ষা করা। এটি 1 1 1আউটপুট দেয় #010101। অন্য যে কোনও মান 0-255 কাজ করে। আপনি কোন পরিবেশ বা এগিয়ে ব্যবহার করছেন?
ড্যারেন স্টোন

2

সি (rs no অক্ষরের কোনও প্রধান বয়লারপ্লেট নেই)

int r,g,b;
scanf("%d %d %d",&r,&b,&g);
printf("#%06x",r<<16|g<<8|b);

বগ স্ট্যান্ডার্ড প্রিন্টফ এবং বিট টুইডলার ব্যবহার


দাঁড়াও readf,? তা কি হওয়া উচিত নয় scanf?
ব্রেডবক্স

@ ব্রেডবক্স আহে হ্যাঁ আমি ডি তে খুব বেশি সময় ব্যয় করেছি; চরের গণনায়
কোনওভাবেই

2

ডিসি: 35 32 টি অক্ষর

[#]n16o?ShShSh[Lhd16/n16%n]ddxxx

নমুনা রান:

bash-4.1$ dc -e '[#]n16o?ShShSh[Lhd16/n16%n]ddxxx' <<< '72 61 139'
#483D8B

bash-4.1$ dc -e '[#]n16o?ShShSh[Lhd16/n16%n]ddxxx' <<< '75 0 130'
#4B0082

bash-4.1$ dc -e '[#]n16o?ShShSh[Lhd16/n16%n]ddxxx' <<< '0 255 127'
#00FF7F

ডিসি: 27 24 টি অক্ষর

(তবে পৃথক লাইনে ইনপুট নম্বরগুলি দরকার))

[#]n16o[?d16/n16%n]ddxxx

নমুনা রান:

bash-4.1$ dc -e '[#]n16o[?d16/n16%n]ddxxx' <<< $'72\n61\n139'
#483D8B

bash-4.1$ dc -e '[#]n16o[?d16/n16%n]ddxxx' <<< $'75\n0\n130'
#4B0082

bash-4.1$ dc -e '[#]n16o[?d16/n16%n]ddxxx' <<< $'0\n255\n127'
#00FF7F

2
dcএই ওয়েবসাইটে যথেষ্ট উত্তর নেই।
ব্রেডবক্স

2

জাভাস্ক্রিপ্ট, 89 টি অক্ষর

console.log('#' + ('00000' + eval('256*(256*(' + DEC.replace(/ /g, ')+')).toString(16)).slice(-6))

এটিকে রূপান্তর 72 61 139করে 256*(256*(72)+61)+139এবং এভেল করে।


দুর্দান্ত একটি, তবে প্রশ্নটিতে পোস্ট করা তৃতীয় নমুনায় ব্যর্থ।
manatwork

আহ, ভাল কল। সংশোধন করা হয়েছে।
কেসি চু

2
eval('(('+DEC.replace(/ /g,'<<8)+'))পরিবর্তে ব্যবহার করে eval('256*(256*('+DEC.replace(/ /g,')+'))আপনি 5 টি অক্ষর সংরক্ষণ করুন!
এফ। হাউরি

2

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

'#'+-join(-split(read-host)|%{'{0:X2}'-f+$_})

অথবা, যদি ডেটাতে পাইপ ব্যবহার করে এটি ব্যবহার করা যায় তবে আপনি কেবল ব্যবহার করতে পারেন

'#'+-join(-split"$input"|%{'{0:X2}'-f+$_})

যা এটিকে 42 এ নামিয়ে আনে ।


চমৎকার কাজ! গল্ফিং সম্পর্কে আমার এখনও অনেক কিছু শিখতে হবে!
ইসজি

ওহ, ভেরিয়েবলগুলির সাথে আপনার ধারণাটি খুব চালাক ছিল; কখনও আমার মন অতিক্রম করতে পারে না। এটি ঠিক তাই ঘটে যে এটি আমার স্বাভাবিক পছন্দের চেয়ে দীর্ঘতর: -splitএবং -join
জোয়

2

পাওয়ারশেল 37

টিমমিডকে ধন্যবাদ একটি বাইট সংরক্ষণ করা

cat rgb2hex.ps1
$args|%{$o+="{0:X2}"-f[byte]$_};"#$o"
wc -c rgb2hex.ps1
38 rgb2hex.ps1
powershell -f .\rgb2hex.ps1 72 61 139
#483D8B
powershell -f .\rgb2hex.ps1 0 255 127
#00FF7F

আমাদের [byte]পূর্ণসংখ্যা হিসাবে ইনপুট দেওয়া হওয়ায় আপনি কিছুটা বাইট সংরক্ষণ করতে পারেন এবং আপনার আউটপুটটি "#$o"$args|%{$o+="{0:X2}"-f$_};"#$o"
এমনটি

@ টিমমিডি জানেন না যে [বাইট] মুছে ফেলা এমন কোনও সংস্করণে সমস্ত সংস্করণে সঠিকভাবে কাজ করে যা আমি (বায়ু] ছাড়াই এক্সপিতে আইরিড ২.০) এটি হেক্স হিসাবে প্রকাশ্য নয় বরং ইন্টস হিসাবে 61১ 139১৯ # # 7261139 # 483d8b নয় "# $ o" উদ্ধৃতিগুলির মধ্যে একটি স্ট্রিং আক্ষরিক নয় তবে হেক্স রূপান্তর সম্পর্কে ধন্যবাদ মন্তব্যগুলি জানার জন্য মূল্যায়নযোগ্য স্ট্রিং প্রশংসা করবে
ব্লেবব

এটি পাওয়ারশেল ভি 2 এবং ভি 3 এর মধ্যে স্পষ্টতই একটি পার্থক্য - সম্পর্কিত। নেট সংস্করণ হেক্সাডেসিমাল রূপান্তরকে কীভাবে পরিচালনা করে তা অবশ্যই কিছু হতে পারে তবে আমি এটিতে নথিপত্র পাই না।
অ্যাডমবর্কবার্ক

2

আর, 16 বাইট

এটাই. অন্তর্নির্মিত ব্যবহার করুন।

rgb(r,g,b,m=255)

1

সি, 67 73 টি অক্ষর (65 অক্ষর মূল বাদে)

main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);printf("#%02X%02X%02X",a,b,c);}

বিরক্তিকর সি প্রোগ্রাম - খুব গোঁড়া।


16 বা এর চেয়ে ছোট আব বা সি নিয়ে কাজ করে না
ratchet freak

% X কে% 02X এ পরিবর্তন করা হয়েছে।
আয়ান জেমস

1

পাইথন ২.7 (৮০ টি অক্ষর)

x=lambda y: ("0"+hex(int(y))[2:])[-2:]
print "#"+''.join(map(x,input().split()))

আমি একক অঙ্কের হেক্স মানগুলি হ্যান্ডেল করার জন্য আরও ভাল উপায় খুঁজছি। কোন ধারনা?


ফর্ম্যাট স্ট্রিং ব্যবহার করতে পারেন? '% 02x' বলে মনে হচ্ছে অন্য সবাই কী করেছে।
jqblz

1

Befunge-98, 45 টি অক্ষর

ব্লেহ, নকল কোড আচ্ছা ভালো. কেবলমাত্র রেডিক্স রূপান্তরটির একটি সরল বাস্তবায়ন।

"#",v
7*+,>#@&:97+/"0"+:"9"`7*+,97+%"0"+:"9"`

নমুনা রান

% cfunge tohex.98 <<<'72 61 139'
#483D8B
% cfunge tohex.98
#75 0 130
4800820 255 127
00FF7F

(দ্রষ্টব্য: ইনপুট পড়ার আগে '#' প্রিন্ট করে --- টাস্কটি এটি নিষেধ করে না; স্ট্ডিনে তিনটি নম্বর দেওয়া এটি স্ট্ডআউটে সঠিক আউটপুট তৈরি করে। এটি নিউলাইনগুলি নিয়েও বিরক্ত করে না এবং আপনি দেখতে পাচ্ছেন যে এটি কী করে না "ইন্টারেক্টিভলি" চালানোর সময় '#' সঠিকভাবে যুক্ত করবেন না))


1

গেম মেকার ল্যাঙ্গুয়েজ, ১5৫ (অবস্থান ৮১ এ ত্রুটি)

3 থেকে 9-সংখ্যার আরজিবি-র জন্য অনুরোধ জানানো হয়। জিএমএল হেক্সাডেসিমাল চিহ্ন সহ হেক্সাডেসিমাল ফিরিয়ে দেয়,$

d=get_string('','')if(d=='')e=""else e="00"h="0123456789ABCDEF"while(d!=''){b=d&255i=string_char_at(h,byte div 16+1)l=string_char_at(h,byte mod 16+1)e+=i+l;d=d>>8}return '$'+e

এটি একটি স্ক্রিপ্ট করুন। এছাড়াও, অস্বীকারহীন ভেরিয়েবলগুলি 0 হিসাবে গণ্য করে সংকলন করুন।

সূত্র


1

Gema, 93 অক্ষর

\B=@set{x;0123456789abcdef}\#
<D>=@substring{@div{$1;16};1;$x}@substring{@mod{$1;16};1;$x}
?=

নমুনা রান:

bash-4.3$ gema '\B=@set{x;0123456789abcdef}\#;<D>=@substring{@div{$1;16};1;$x}@substring{@mod{$1;16};1;$x};?=' <<< '0 255 127'
#00ff7f

1

বার্লস্কু, 12 বাইট (লোয়ার-কেসের জন্য 10 বাইট)

যদি নিম্ন-কেসটিও অনুমোদিত হয় তবে 10 বাইট:

psb6\['#+]

ব্যবহার:

blsq ) "72 61 139"psb6\['#+]
"#483d8b"

আপনার যদি মারাত্মকভাবে উচ্চ-কেসের প্রয়োজন হয় তবে যুক্ত করুন ZZ:

blsq ) "72 61 139"psb6\['#+]ZZ
"#483D8B"

আপনি যদি স্ট্রিংয়ের মতো পূর্ণসংখ্যা না পান তবে সাথে যান:

blsq ) {72 61 139}b6\['#+]
"#483d8b"

ব্যাখ্যা:

ps -- parse string
b6 -- to hex
\[ -- concat
'#+] -- prepend #

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

বোনাস:

এটিকে আবার রূপান্তর করতে এটি ব্যবহার করুন:

blsq ) "#483d8b"[-2cob6
{72 61 139}

1

পাওয়ারশেল, 28 বাইট

'#{0:X2}{1:X2}{2:X2}'-f$args

পরীক্ষার স্ক্রিপ্ট:

$f = {

"#{0:X2}{1:X2}{2:X2}"-f$args
}

@(
    ,('#483D8B',72, 61, 139)
    ,('#4B0082',75,  0, 130)
    ,('#00FF7F',0 ,255, 127)
) | % {
    $e,$a = $_
    $r = &$f @a
    "$($r-eq$e): $r"
}

আউটপুট:

True: #483D8B
True: #4B0082
True: #00FF7F

0

পাইথন 3.3 @ 60 টি অক্ষর

print("#"+3*"%.2X"%tuple(int(n) for n in input().split())) 

প্রতিহত করতে পারেনি:

[dan@danbook:code_golf/int_to_hex]$ python3.3 int_to_hex.py
176 11 30
#B00B1E

0

ক্লোজার 76 অক্ষর

সম্পূর্ণতার জন্য এটি দেরী হতে পারে:

(defn hexy [r g b] (reduce str (cons "#" (map #(format "%02X" %) [r g b]))))

উদাহরণ কল:

(hexy 0 255 127)
"#00FF7F"


0

কমন লিস্প, 39 টি অক্ষর

(format()"#~@{~2,'0x~}"#1=(read)#1##1#)

তিনটি পূর্ণসংখ্যা পড়ুন, একটি স্ট্রিং ফিরে আসুন।


0

জাভাস্ক্রিপ্ট ES6, 63 বাইট

h=>'#'+h.split` `.map(x=>(x<16?0:'')+(x*1).toString(16)).join``

কাকতালীয়ভাবে, আমি আপনার দেখার আগে আমি প্রায় ঠিক একই জিনিসটি লিখেছিলাম। খুব সুন্দর =) এগুলি যথেষ্ট কাছে যে আমি আমার পোস্ট করব না তবে আপনি x=>(x<16?0:'')+x.toString(16)
এটির

1
এছাড়াও, r=শুরুতে অন্তর্ভুক্ত করার দরকার নেই । এটি এখনও একটি বেনামি ফাংশন হিসাবে একটি ফাংশন হিসাবে গণ্য করা হয়, যেহেতু আপনি কোনও কিছু বরাদ্দ না করেই এটিকে আবেদন করতে পারেন।
Mwr247

উপস। : মানচিত্রে বোঝানো হতে x=>(x<16?0:'')+(x*1).toString(16)সেখানে ইতি এবং আমার প্রথম এক বর্তমানে জন্য ভুল মান দিতে x>9
Mwr247

এটি বর্তমানে প্রথম পরীক্ষার ক্ষেত্রে #7261139পরিবর্তে ফিরে আসে #483D8B
ডেনিস 21

0

পাইথন 2, 40 বাইট

s='#';exec's+="%02X"%input();'*3;print s

তিনটি পৃথক লাইন থেকে ইনপুট পড়ে। আপত্তি execএবং স্ট্রিং গুণ।

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

$ python2 rgbint.py
72
61
139
#483D8B

$ python2 rgbint.py
75
0
130
#4B0082

$ python2 rgbint.py
0
255
127
#00FF7F

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