रंग RGB हेक्स के लिए int


13

तीन पूर्णांक आरजीबी को देखते हुए, एक स्ट्रिंग के रूप में आउटपुट हेक्साडेसिमल प्रतिनिधित्व।

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

सबसे कम अपरंपरागत कोड जीतता है


16
हमारे अक्सर पूछे जाने वाले प्रश्न इस साइट पर सभी प्रश्न ... एक उद्देश्य प्राथमिक जीत मानदंड होना चाहिए, ताकि यह निर्विवाद रूप से तय हो सके कि कौन सी प्रविष्टि जीत सकती है। । सबसे छोटा उद्देश्य है, लेकिन "सबसे अपरंपरागत" नहीं है। इसके अलावा, कोड-गोल्फ टैग का उपयोग केवल तभी किया जाना चाहिए जब जीतने की स्थिति सिर्फ सबसे छोटा कोड हो; और कोड-चुनौती टैग का उपयोग केवल तभी किया जाना चाहिए जब कोड-गोल्फ टैग नहीं है।
पीटर टेलर

और विजेता को कुछ समय से पहले स्वीकार करें (इस मामले में, 24h भी नहीं था) आगे के योगदान को हतोत्साहित करता है ...
woliveirajr

@PeterTaylor क्षमा करें, मैं अभी से दिशानिर्देशों को पढ़ना सुनिश्चित करूंगा :( मुझे लगता है कि आप सही हैं अपरंपरागत बहुत अस्पष्ट है
Quill

जवाबों:


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

q / k (3 वर्ण)

बिल्कुल अपरंपरागत नहीं, लेकिन काफी कम

4h$

उदाहरण

q)4h$ 72 61 139
0x483d8b

प्रश्न में आउटपुट प्रारूप से मिलान करने के लिए, हम कर सकते हैं (9 वर्णों के लिए):

"#",/$4h$

1
यह प्रश्न में नमूना आउटपुट के अनुसार आवश्यक पाउंड चिह्न (#) गायब है।
इस्जी नोव

5

पॉवरशेल: 71 52 51 41

इंगित करने के लिए @manatwork के लिए धन्यवाद लूप के ForEach-Objectस्थान पर उपयोग किया जा सकता है for
@Joey को यह इंगित करने के लिए धन्यवाद कि मैं -joinइसे लूप आउटपुट पर उपयोग कर सकता हूं , बजाय इसे चर में रखने के।

गोल्फ कोड:

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

ध्यान दें:

अमान्य इनपुट के लिए यहां कोई त्रुटि नहीं है। स्क्रिप्ट खुशी से 256, 4096 और 65536 इनपुट के रूप में लेगी, फिर आउटपुट # 100100010000 (जो स्पष्ट रूप से RGB के लिए काम नहीं करेगा)।

टिप्पणियों के साथ असंगठित:

# 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 अक्षरों तक कम करने के लिए लूप बनाएं ।
14

@ मैनटवर्क मुझे नहीं लगता कि पॉवरशेल में ए के लिए उचित वाक्यविन्यास है foreach। (कम से कम, मुझे काम करने के लिए कुछ टेस्ट रन नहीं मिल पाए हैं।) हालांकि, सही सिंटैक्स का उपयोग करके, एक अंतर्निहित उपनाम और दूसरा पावरस्ले शॉर्टकट जिसे मैंने हाल ही में खोजा है, मुझे लगता है कि मुझे कुछ बेहतर मिला है, शेविंग आपके सुझाव से एक और 12 अक्षर। (1..3)|%{...}(दीर्घवृत्त के स्थान पर मौजूदा लिपि से ब्रैकेटेड स्टेटमेंट डालें।) मुझे अभी भी स्क्रिप्ट में पूरी तरह से परीक्षण करने की आवश्यकता है, लेकिन मुझे उस दिशा में इंगित करने के लिए धन्यवाद!
Iszi

कोई विचार नहीं कि यह उचित वाक्यविन्यास है या नहीं, लेकिन SS64 में इसका foreachउल्लेख है और यह मेरे लिए काम करता है। (संस्करण के बारे में कोई विचार नहीं है। जो विंडोज 7 के साथ आया था)
मैनटवर्क

@manatwork दिलचस्प है। मैं चारों ओर खुदाई करना चाहता हूं और यह जानना चाहता हूं कि कुछ और गलत क्या है (मुझे कुछ समय पहले "अप्रत्याशित टोकन 'मिल रहा था।) कुछ समय। यह संभव है कि SS64 लेख PowerShell के एक अलग संस्करण के लिए लिखा गया था - मुझे यकीन नहीं है। अभी के लिए, मैंने पुष्टि की है कि (1..3)|%काम करता है और स्क्रिप्ट को 56 वर्णों तक लाता है। मैं उस उत्तर को संपादित करूँगा, और निश्चित रूप से आपको इस विचार का श्रेय दूंगा। एक बार फिर धन्यवाद!
Iszi

2
ओह डांग। आप का उपयोग करके 41 को यह प्राप्त कर सकते हैं -join: '#'+-join(1..3|%{"{0:X2}"-f+(read-host)})
जॉय

4

bash 22 21 वर्ण

( \दोहरे उद्धरण चिह्नों के बजाय 1 चार्ट के लिए धन्यवाद @manatwork )

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: bash (अधिक अपरंपरागत विधि) 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"

यह एक ब्राउज़र विंडो प्रदर्शित करेगा, जिसमें:

RGB int 2 हेक्स व्यूअर कन्वर्टर

जहाँ आप मान को बदलने के लिए रोल-मोल रोल कर सकते हैं (बदलाव कुंजी के साथ चरण 15 के लिए पकड़ के साथ) ...


वास्तव में टर्मिनेटिंग न्यूलाइन का अनुरोध नहीं किया गया था और केवल "#" भागने की जरूरत है, इसलिए printf \#%02X%02X%02Xयह पर्याप्त है।
मैनटवर्क

एक और अपरंपरागत तरीका जोड़ा गया :
एफ। होरी

जबरदस्त हंसी। वह आंतरिक लूप वास्तव में चौंकाने वाला अपरंपरागत है।
5

@ मैनटवर्क धन्यवाद, मुझे d+=${c[$b$a 0x10]}कुछ सेक्सी लगता है !
एफ। होरी

1
... या शायद d+=${c[$b$a 020]}काम करेंगे और अच्छा लगेंगे
एफ। हौरी

3

पर्ल, 31 अक्षर

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

इस तरह के एक छोटे कार्यक्रम को अपरंपरागत बनाना कठिन है, लेकिन मुझे लगता है कि यह काम करता है।


मुझे यह उत्तर पसंद है :) कुछ और और मुझे लगता है कि मैं इस पर समझौता कर सकता हूं यदि आसपास कुछ भी बेहतर रोल नहीं करता है।
क्विल

ठंडा! बस एक unpackसवाल: क्या आप हेक्साडेसिमल को a.f अपरकेस बना सकते हैं, जैसे प्रश्न में?
18

@ मैनटवर्क मैंने इसे अंदर करने का एक तरीका खोजने की कोशिश की unpack, लेकिन कोई किस्मत नहीं। एक तरीका sprintfइसके बजाय उपयोग करना है unpack, लेकिन यह लंबे और पूरी तरह से रूढ़िवादी है। दूसरा तरीका सिर्फ स्ट्रिंग को अपरकेस में संशोधित करना है: map{uc unpack H2,chr}तीन वर्णों की लागत पर।
ब्रेडबॉक्स

धन्यवाद, @breadbox उन मुश्किल थोड़ा packऔर unpackमेरे कोडिंग शैली में कभी नहीं। तो इसके अपरंपरागत मेरे लिए पर्याप्त है।
मैनटवर्क

गलत गिनती। यह 30 चार कर!
एफ। हौरी

3

एक्शन स्क्रिप्ट 3 | 43 अक्षर

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

आउटपुट: #483D8B


क्या आप यहां बहुत सारे सफेद स्थान नहीं गिरा सकते? मुझे एक्शन स्क्रिप्ट पता नहीं है, लेकिन वे आवश्यक नहीं दिखते
क्रंचर

@ क्रंचर हाँ, क्षमा करें, यहाँ मेरा पहला उत्तर है।
इल्या गज़मैन 20

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"


अनुरोध पर स्पष्टीकरण प्रदान करेगा। यदि आप यह पता लगा सकते हैं कि मैं परेशान नहीं हूँ
Cruncher

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

सी (67 चार्ट्स कोई मुख्य बॉयलरप्लेट)

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

दलदल मानक printf और बिट twiddler उपयोग


रुको readf? ऐसा नहीं होना चाहिए scanf?
ब्रेडबॉक्स

@breadbox आह हाँ, मैंने D में बहुत समय बिताया; किसी भी तरह से चार गिनती में कोई अंतर नहीं है
शाफ़्ट फ्रीक

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इस वेबसाइट पर पर्याप्त उत्तर नहीं हैं ।
ब्रेडबॉक्स 19

2

जावास्क्रिप्ट, 89 वर्ण

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

धर्मान्तरित 72 61 139करने के लिए 256*(256*(72)+61)+139और यह evals।


एक अच्छा है, लेकिन सवाल में तैनात 3 नमूने पर विफल रहता है।
मैनटवर्क

आह, अच्छी कॉल। फिक्स्ड।
केसी चू

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

TimmyD की बदौलत एक बाइट बचाई

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"- जो 31 बाइट्स के लिए देता है$args|%{$o+="{0:X2}"-f$_};"#$o"
AdmBorkBork

@TimmyD यह नहीं जानता कि यदि हटाना [बाइट] एक संस्करण में सभी संस्करणों में सही तरीके से काम करता है जिसमें मैंने परीक्षण किया (iirc 2.0 in xp) बिना [बाइट] यह हेक्स के रूप में समवर्ती नहीं था, लेकिन इनट्स के रूप में यानी 72 61 139 # 7261139 # 483d8b नहीं उद्धरण के अंदर "# $ o" एक स्ट्रिंग शाब्दिक है, लेकिन हेक्स रूपांतरण के बारे में धन्यवाद टिप्पणी जानने के लिए स्ट्रिंग अच्छा मूल्यांकन किया है
blabb

यह जाहिरा तौर पर PowerShell v2 और v3 के बीच का अंतर है - कुछ होना चाहिए कि कैसे संबंधित .NET संस्करण हेक्साडेसिमल रूपांतरण को संभालता है, लेकिन मैं इस पर प्रलेखन नहीं ढूंढ सकता।
AdmBorkBork

2

आर, 16 बाइट्स

बस। में निर्मित का उपयोग करें।

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

1

सी, ६ ) ३ वर्ण (६५ मुख्य को छोड़कर)

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

बोरिंग सी कार्यक्रम - बहुत रूढ़िवादी।


16 से छोटे या छोटे के साथ काम नहीं करता है
शाफ़्ट सनकी 20

% X को% 02X में बदल दिया।
इयान जेम्स

1

पायथन 2.7 (80 वर्ण)

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

मैं एकल अंक हेक्स मानों को संभालने के लिए बेहतर तरीके की तलाश कर रहा हूं। कोई विचार?


शायद प्रारूप स्ट्रिंग्स का उपयोग करें? '% 02x' लगता है कि बाकी सभी ने क्या किया है।
जक्लब

1

Befunge-98, 45 वर्ण

Bleh, डुप्लिकेट कोड। ओह अच्छा। मूलांक रूपांतरण का सीधा-सादा कार्यान्वयन।

"#",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

(नोट: इनपुट पढ़ने से पहले '#' प्रिंट करता है --- यह कार्य मना नहीं करता है; स्टड पर तीन नंबर दिए जाने से यह स्टडआउट पर सही आउटपुट देता है। यह भी नईलाइन्स से परेशान नहीं करता है, और जैसा कि आप इसे देख सकते हैं। "इंटरएक्टिवली" चलाने पर "t add '#' ठीक से।"


1

गेम मेकर भाषा, 175 (स्थिति 81 पर त्रुटि)

3 से 9 अंकों के आरजीबी के लिए संकेत। GML हेक्साडेसिमल चिह्न के साथ हेक्साडेसिमल लौटाता है,$

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

गेमा, 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

गणितज्ञ, 40 वर्ण

f = StringJoin["#", IntegerString[#, 16, 2]] &

rgbs = {{72, 61, 139}, {75, 0, 130}, {0, 255, 127}}

f /@ rgbs // Column

# 483d8b

# 4b0082

# 00ff7f


0

कॉमन लिस्प, 39 अक्षर

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

तीन पूर्णांक पढ़ें, एक स्ट्रिंग लौटाएं।


0

जावास्क्रिप्ट ईएस 6, 63 बाइट्स

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

संयोगवश, मैंने आपके देखे जाने से पहले लगभग वैसी ही लिखी, जैसी आप ने लिखी है। बहुत अच्छा =) वे काफी करीब हैं कि मैं उन्हें पोस्ट नहीं करूंगा, लेकिन आप अपनी मैपिंग पर कुछ बाइट्स बचा सकते हैं:x=>(x<16?0:'')+x.toString(16)
Mwr247

1
इसके अलावा, r=शुरुआत में शामिल करने की कोई आवश्यकता नहीं है । यह अभी भी एक फ़ंक्शन के रूप में एक अनाम फ़ंक्शन के रूप में गिना जाता है, क्योंकि आप इसे बिना कुछ भी असाइन किए बिना इसे लागू कर सकते हैं।
18:24 पर Mwr247

ओह। नक्शे का अर्थ है: x=>(x<16?0:'')+(x*1).toString(16)आपका और मेरा पहला वर्तमान में गलत मान है x>9

यह पहले परीक्षण के मामले के #7261139बजाय वर्तमान में लौटता है #483D8B
डेनिस

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.