एक कार्यक्रम के बाइट्स की गणना करें


21

नोट 2: मैंने @DigitalTrauma6-बाइट लंबा उत्तर स्वीकार किया है । अगर कोई भी हरा सकता है कि मैं स्वीकृत उत्तर को बदल दूंगा। खेलने के लिए शुक्रिया!

नोट: मैं 10/14/15 को शाम 6:00 बजे एमएसटी पर एक उत्तर स्वीकार करूंगा। भाग लेने वाले सभी को धन्यवाद!

मैं बहुत आश्चर्यचकित हूं कि यह अभी तक नहीं पूछा गया है (या मैंने पर्याप्त खोज नहीं की है)। किसी भी तरह से, यह चुनौती बहुत आसान है:

इनपुट: एक स्ट्रिंग के रूप में एक कार्यक्रम। इसके अतिरिक्त, इनपुट में शामिल हो सकता है या नहीं:

  • अग्रणी स्थान और अनुगामी
  • अनुगामी नईं
  • गैर- ASCII वर्ण

आउटपुट: दो पूर्णांक, एक UTF-8 वर्ण गणना का प्रतिनिधित्व करने वाला और एक बाइट गिनती का प्रतिनिधित्व करने वाला, आप चुन सकते हैं कि कौन सा क्रम है। अनुगामी newlines की अनुमति है। आउटपुट STDOUT में हो सकता है या किसी फ़ंक्शन से लौटाया जा सकता है। आईटी किसी भी प्रारूप में हो सकता है जब तक कि दोनों संख्या एक-दूसरे से अलग न हों (2327 वैध आउटपुट नहीं है)।

टिप्पणियाँ:

नमूना I / O: (सभी आउटपुट फॉर्म में हैं {characters} {bytes})

इनपुट: void p(int n){System.out.print(n+5);}

आउटपुट: 37 37

इनपुट: (~R∊R∘.×R)/R←1↓ιR

आउटपुट: 17 27

इनपुट:


friends = ['john', 'pat', 'gary', 'michael']
for i, name in enumerate(friends):
    print "iteration {iteration} is {name}".format(iteration=i, name=name)

आउटपुट: 156 156

यह कोड गोल्फ है - बाइट्स जीत में सबसे छोटा कोड !

लीडरबोर्ड

यहां एक नियमित लीडरबोर्ड और भाषा के अनुसार विजेताओं का अवलोकन करने के लिए एक स्टैक स्निपेट है।

यह सुनिश्चित करने के लिए कि आपका उत्तर दिखाई देता है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:

# Language Name, N bytes

Nआपके सबमिशन का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:

# Ruby, <s>104</s> <s>101</s> 96 bytes

यदि आप अपने हेडर में कई संख्याओं को शामिल करना चाहते हैं (जैसे कि आपका स्कोर दो फाइलों का योग है या आप दुभाषिया ध्वज दंड को अलग से सूचीबद्ध करना चाहते हैं), तो सुनिश्चित करें कि हेडर में वास्तविक अंक अंतिम संख्या है:

# Perl, 43 + 2 (-p flag) = 45 bytes

आप भाषा के नाम को एक लिंक भी बना सकते हैं जो लीडरबोर्ड स्निपेट में दिखाई देगा:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes

var QUESTION_ID=60733,OVERRIDE_USER=36670;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>


क्या आउटपुट को अलग होना पड़ता है?
माल्टीसेन

नहीं, यह किसी भी प्रारूप में हो सकता है जब तक संख्या एक-दूसरे से भिन्न होती हैं (2327 वैध आउटपुट नहीं है)
GamrCorps

क्या कुछ यूटीएफ -8 वर्ण नहीं हैं जो व्याख्या के आधार पर दो अन्य वर्णों में विभाजित हो सकते हैं जो समान बाइट मान उत्पन्न करते हैं? फिर हम कैसे गिनेंगे?
पैट्रिक रॉबर्ट्स

ईमानदारी से, मुझे नहीं पता कि आपका क्या मतलब है। इसलिए, अपनी इच्छानुसार गिनती करें।
गेमक्रॉप्स

@GamrCorps UTF-8 वर्णों में गैर-ASCII वर्ण शामिल हैं, जो मूल रूप से ऐसे वर्ण हैं जिन्हें एक बाइट द्वारा प्रस्तुत नहीं किया जा सकता है, लेकिन दो या चार बाइट द्वारा दर्शाया जाना चाहिए। किसी प्रोग्राम द्वारा पात्रों को कैसे पढ़ा जाता है, इस पर निर्भर करते हुए, यह कार्यक्रम पर निर्भर है कि वह बाइट्स की धारा की व्याख्या कैसे करें। उदाहरण के लिए, एक 2 बाइट UTF-8 की व्याख्या 2 अनुक्रमिक ASCII वर्णों के रूप में की जा सकती है, जिनमें से प्रत्येक को मूल रूप से इच्छित चरित्र बनाने वाले दो बाइट्स द्वारा दर्शाया गया है।
पैट्रिक रॉबर्ट्स

जवाबों:


32

शैल + कोरुटिल्स, ६

यदि UTF-8 के अलावा किसी एन्कोडिंग का उपयोग किया जाता है तो यह उत्तर अमान्य हो जाता है।

wc -mc

परीक्षण उत्पादन:

$ printf '%s' "(~R∊R∘.×R)/R←1↓ιR" | ./count.sh 
     17      27
$ 

मामले में आउटपुट स्वरूप को सख्ती से लागू किया जाता है (केवल एक स्थान को दो पूर्णांकों को अलग करता है), तो हम यह कर सकते हैं:

शैल + कोरुटिल्स, 12

echo`wc -mc`

के बाद अंतरिक्ष को दूर करने के सुझाव के लिए @immibis को धन्यवाद echo। मुझे यह पता लगाने में थोड़ा समय लगा कि - शेल इसका विस्तार करेगा echo<tab>n<tab>m, और डिफ़ॉल्ट रूप से टैब में हैं $IFS, इसलिए परिणामी कमांड में पूरी तरह से कानूनी टोकन विभाजक हैं।


13
निश्चित रूप से नौकरी के लिए सही उपकरण।
एलेक्स ए।

1
क्या आप "गूंज" के बाद अंतरिक्ष निकाल सकते हैं?
user253751

@immibis हाँ - अच्छा - मैं यह नहीं देख सकता कि अभी कैसे काम किया।
डिजिटल ट्रॉमा

21

GolfScript, 14 12 बाइट्स

.,p{64/2^},,

इसे ऑनलाइन वेब गोल्फस्क्रिप्ट पर आज़माएं

विचार

गोल्फस्क्रिप्ट के पास कोई सुराग नहीं है कि यूनिकोड क्या है; सभी तार (इनपुट, आउटपुट, आंतरिक) बाइट्स से बने होते हैं। जबकि यह बहुत कष्टप्रद हो सकता है, यह इस चुनौती के लिए एकदम सही है।

UTF-8 ASCII और गैर-ASCII वर्णों को अलग-अलग तरीके से एन्कोड करता है:

  • 128 से नीचे के सभी कोड पॉइंट इनकोडेड हैं 0xxxxxxx

  • अन्य सभी कोड बिंदुओं को एन्कोड किया गया है 11xxxxxx 10xxxxxx ... 10xxxxxx

इसका मतलब यह है कि प्रत्येक यूनिकोड वर्ण के एन्कोडिंग में एकल 0xxxxxxxबाइट या एकल 11xxxxxxबाइट (और 0 से 5 10xxxxxxबाइट्स) होते हैं।

द्वारा इनपुट के सभी बाइट्स विभाजित करके 64 , हम बारी 0xxxxxxxमें 0 या 1 , 11xxxxxxमें 3 , और 10xxxxxxमें 2 । बचे हुए सभी को बाइट्स को गिनना है जिसका भागफल 2 नहीं है

कोड

                (implicit) Read all input and push it on the stack.
.               Push a copy of the input.
 ,              Compute its length (in bytes).
  p             Print the length.
   {     },     Filter; for each byte in the original input:
    64/           Divide the byte by 64.
       2^         XOR the quotient with 2.
                If the return is non-zero, keep the byte.
           ,    Count the kept bytes.
                (implicit) Print the integer on the stack.

9

पायथन, 42 40 बाइट्स

lambda i:[len(i),len(i.encode('utf-8'))]

दो बाइट्स के लिए एलेक्स ए के लिए धन्यवाद।

सीधा, जो कहता है, वही करता है। तर्क के साथ i, की लंबाई प्रिंट करता है i, फिर की लंबाईi UTF-8 । ध्यान दें कि बहुस्तरीय इनपुट को स्वीकार करने के लिए, फ़ंक्शन तर्क को ट्रिपल उद्धरण से घिरा होना चाहिए ''':।

संपादित करें: यह मल्टीलाइन इनपुट के लिए काम नहीं करता था, इसलिए मैंने इसके बजाय इसे एक फ़ंक्शन बनाया।

कुछ परीक्षण मामलों (रिक्त newlines द्वारा अलग):

f("Hello, World!")
13 13

f('''
friends = ['john', 'pat', 'gary', 'michael']
for i, name in enumerate(friends):
    print "iteration {iteration} is {name}".format(iteration=i, name=name)
''')
156 156

f("(~R∊R∘.×R)/R←1↓ιR")
17 27

और यहाँ यह सब समय मैं सिर्फ चूसने वाले (जैसे) का उपयोग कर रहा हूँ। यह स्पष्ट रूप से श्रेष्ठ है।
स्थिति

3
चूंकि आउटपुट को एक फ़ंक्शन से वापस किया जा सकता है, इसलिए आप इसे बनाकर कुछ बाइट्स बचा सकते हैं lambda i:[len(i),len(i.encode('utf-8'))]
एलेक्स ए।

@AlexA। ठीक है, बदल रहा है। इससे पहले लम्‍बा को कभी नहीं छुआ।
The_Basset_Hound

1
आपका मेमना काफी सही ढंग से नहीं बना है। यदि आप इसे एक परिभाषा देते हैं, तो यह होगा f=lambda i:[len(i),len(i.encode('utf-8'))], लेकिन चूंकि आप एक अनाम लंबो फ़ंक्शन का उपयोग कर रहे हैं, यह सिर्फ होना चाहिए lambda i:[len(i),len(i.encode('utf-8'))]
केड

1
आप के U8बजाय केutf-8 साथ कुछ बाइट्स बचा सकता है
Mego

5

जूलिया, 24 बाइट्स

s->(length(s),sizeof(s))

यह एक लैम्बडा फ़ंक्शन बनाता है जो पूर्णांकों का एक टपल लौटाता है। lengthसमारोह, जब एक स्ट्रिंग पर कहा जाता है, वर्णों की संख्या देता है। sizeofसमारोह इनपुट में बाइट की संख्या देता है।

इसे ऑनलाइन आज़माएं



3

पायथ - 12 9 बाइट्स

कम पाने की कोशिश करेंगे।

lQh/l.BQ8

टेस्ट सूट


यह यूटीएफ -8 बाइट काउंट के लिए एक बाइट देता है। यह वर्तमान में floor(… / 8) + 1, होना चाहिएceil(… / 8)
पुरखाकूदरी

इससे मुझे एक बग को पकड़ने में मदद मिली .B। इसके अलावा, lQlc.BQ81 बाइट की बचत करते समय बग @ Pietu1998 उल्लेख ठीक करता है, मुझे लगता है।
ईसैक

3

जावा, 241 90 89 बाइट्स

int[]b(String s)throws Exception{return new int[]{s.length(),s.getBytes("utf8").length};}

प्यार है कि आप 100 बाइट्स के तहत जावा को मिला।
GamrCorps

ठीक है, यह सिर्फ एक विधि है ...
सुपरजेडिए 224

1
आप को बदल सकता है getBytes("UTF-8")के लिए getBytes("utf8")। और क्यों throws Exception?
RAnders00

UnsupportedEncodingExceptionजब आप इसे अमान्य एन्कोडिंग नाम देते हैं तो getBytes फेंकता है ।
SuperJedi224 20



2

आर, 47 बाइट्स

a<-commandArgs(TRUE);nchar(a,"c");nchar(a,"b")

इनपुट: (~R∊R∘.×R)/R←1↓ιR

आउटपुट:

[1] 17
[2] 27

यदि आउटपुट के साथ-साथ मुद्रण संख्याएँ "किसी भी प्रारूप" के तहत स्वीकार्य नहीं होती हैं cat समस्या को ठीक कर सकते हैं:

आर, 52 बाइट्स

a<-commandArgs(TRUE);cat(nchar(a,"c"),nchar(a,"b"))

इनपुट: (~R∊R∘.×R)/R←1↓ιR

आउटपुट: 17 27


एक समारोह के रूप में, 39 बाइट्स:function(s)c(nchar(s,"c"),nchar(s,"b"))
एलेक्स ए।

1
इसके अलावा बस कुछ सामान्य आर गोल्फ युक्तियाँ: आप उपयोग कर सकते हैं Tके स्थान पर TRUE, =के स्थान पर <-, और इनपुट से आ सकता है scan, readlineया function, जिनमें से सभी की तुलना में कम कर रहे हैं commandArgs
एलेक्स ए।

1

मिल्की वे 1.6.2 , 7 बाइट्स (गैर-प्रतिस्पर्धात्मक)

':y!^P!

व्याख्या

'        ` read input from the command line
 :       ` duplicate the TOS
  y      ` push the length of the TOS
   !  !  ` output the TOS
    ^    ` pop the TOS
     P   ` push the length of the TOS in bytes

प्रयोग

./mw <path-to-code> -i <input>

मैंने इसे गैर-प्रतिस्पर्धा के रूप में चिह्नित किया क्योंकि चुनौती भाषा से पहले की है।
Mego


1

ब्रेनफक, 163 बाइट्स

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

पठनीयता के लिए लाइनब्रेक के साथ:

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

सबसे महत्वपूर्ण हिस्सा पहली पंक्ति है। यह इनपुट किए गए वर्णों की संख्या को गिनता है। बाकी सिर्फ 9 से अधिक संख्या छापने के लिए आवश्यक लंबा रद्दी है।

संपादित करें: चूंकि BF 1-255 से ASCII संख्याओं का इनपुट / आउटपुट कुछ भी नहीं कर सकता, लेकिन UTF-8 वर्णों को मापने का कोई तरीका नहीं होगा।


ऐसा लगता है कि यह और अधिक गोल्फ हो सकता है। लेकिन यह शायद नहीं हो सकता। +1।
wizzwizz4

0

मोम, 99 87 बाइट्स

एक अधिक कॉम्पैक्ट संस्करण, 12 बाइट्स पहले की तुलना में कम:

p~5~q")~4~p")~7~g?<
>)'qq>@PPq>@Pp>Ag'd@{
     >@PPPq  @dNp"?{gAV_
     >@PPPP>@>?b>N{;

हेक्सागोनल लेआउट का पालन करना उतना ही आसान है:

 p ~ 5 ~ q " ) ~ 4 ~ p " ) ~ 7 ~ g ? <
> ) ' q q > @ P P q > @ P p > A g ' d @ {
         > @ P P P q     @ d N p " ? { g A V _ 
        > @ P P P P > @ > ? b > N { ;

charactersतब आउटपुट , bytecountएक नई रेखा द्वारा अलग किया गया।

उदाहरण: sलाइन की शुरुआत में छोटा अक्षर केवल उपयोगकर्ता को बताता है कि प्रोग्राम इनपुट के रूप में एक स्ट्रिंग चाहता है।

julia> beeswax("utf8bytecount.bswx")
s(~R∊R∘.×R)/R←1↓ιR
17
27
Program finished!

खाली स्ट्रिंग उदाहरण:

julia> beeswax("utf8bytecount.bswx")
s
0
0
Program finished!

Beeswax ने एक स्ट्रिंग के पात्रों को धक्का दिया जो STDIN में वैश्विक स्टैक पर दर्ज किया गया है, जिसे उनके यूनिकोड कोड बिंदुओं के मानों के रूप में कोडित किया गया है।

आसान समझ के लिए, यहां ऊपर दिए गए प्रोग्राम का अलिखित संस्करण है:

             >@{;    >@P@p >@PP@p>@P p
_VAg{?"pN>Ag"d?g~7~)"d~4~)"d~5~)"d@PPp
    ;{N< d?              <      < @PP<

इस उदाहरण के लिए, चरित्र αSTDIN पर दर्ज किया गया है (कोड बिंदु U+03B1, दशमलव: 945)

                                        gstack     lstack

_VA                                     [945,1]•   [0,0,0]•    enter string, push stack length on top of gstack
   g                                               [0,0,1]•    push gstack top value on top of local stack (lstack)
    {                                                          lstack 1st value to STDOUT (num. of characters)
     ?                                  [945]•                 pop gstack top value
      "                                                        skip next if lstack 1st >0
        N>                                                     print newline, redirect to right
          Ag                            [945,1]•   [0,0,1]•    push gstack length on top of gstack, push that value on lstack.
            "                                                  skip if lstack 1st > 0
              ?                         [945]•                 pop gstack top value
               g                                   [0,0,945]•  push gstack top value on lstack
                ~                                  [0,945,0]•  flip lstack 1st and 2nd
                 7                                 [0,945,7]•  lstack 1st=7
                  ~                                [0,7,945]•  flip lstack 1st and 2nd
                   )                               [0,7,7]•    lstack 1st = lstack 1st >>> 2nd  (LSR by 7)
                    "                                          skip next if top >0
                      ~4~)                         [0,0,0]•            flip,1st=4,flip,LSR by 4
                          "d                                   skip next if top >0... redirect to upper right
                           >@                                  redirect to right, flip lstack 1st and 3rd
                             PP@                   [2,0,0]•    increment lstack 1st twice, flip 1st and 3rd
                                p                              redirect to lower left
                                "                              (ignored instruction, not relevant)
         d?              <      <       []•                       redirect to left... pop gstack, redirect to upper right

         >Ag"d                          [0]•       [2,0,0]•    redir. right, push gstack length on gstack
                                                               push gstack top on lstack, skip next if lstack 1st > 0
                                                               redir. to upper right.
         >@                                        [0,0,2]•    redir right, flip lstack 1st/3rd
           {;                                                  output lstack 1st to STDOUT, terminate program

मूल रूप से, यह प्रोग्राम 1-बाइट, 2-बाइट, 3-बाइट और 4-बाइट कोडपॉइंट सीमा के लिए प्रत्येक कोडपॉइंट मान की जाँच करता है।

यदि nकोडपॉइंट मान है, तो उचित UTF-8 स्ट्रिंग्स के लिए ये सीमाएँ हैं:

codepoint 0...127         1-byte: n>>>7 = 0
          128...2047      2-byte: n>>>11= 0  → n>>>7>>>4
          2048...65535    3-byte: n>>>16= 0  → n>>>7>>>4>>>5
          65535...1114111 4-byte: the 3 byte check result is >0

आप संख्याओं को पा सकते हैं 7, 4और 5ऊपर दिए गए कोड में शिफ्ट निर्देशों के लिए। अगर एक चेक में परिणाम होता है 0, तो दर्ज स्ट्रिंग के बाइट्स की संख्या को व्यवस्थित करने के लिए lstack काउंटर को उचित रूप से बढ़ा दिया जाता है। @PP...@निर्माणों बाइट काउंटर बढ़ाने के। प्रत्येक टैली के बाद, सबसे ऊपरी यूनिकोड बिंदु को खाली होने तक जीस्टैक से पॉप किया जाता है। फिर बाइट गणना STDOUT में आउटपुट होती है और प्रोग्राम समाप्त हो जाता है।

अनुचित एन्कोडिंग जैसे कि ASCII एन्कोडिंग और परे अवैध कोड बिंदुओं के लिए कोई जांच नहीं है 0x10FFFF, लेकिन मुझे लगता है कि यह ठीक है;)


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