আক্ষরিক অক্ষরে যেমন '\ 15' এর মধ্যে একটি পালানো সংখ্যার জাভা শব্দার্থক শব্দগুলি কী কী?


85

নিম্নলিখিত কোডের বিভাগগুলি কার্যকর করা হলে ঠিক কী ঘটে তা দয়া করে ব্যাখ্যা করুন:

int a='\15';
System.out.println(a);

এই 13 প্রিন্ট;

int a='\25';
System.out.println(a);

এটি 21 প্রিন্ট করে;

int a='\100';
System.out.println(a);

এটি 64 প্রিন্ট করে।


22
দেখে মনে হচ্ছে এটি সংখ্যাটিকে অষ্টাল হিসাবে ব্যাখ্যা করছে।
নিখিল

4
int a='\15'প্রথমে charঅষ্টাল সংখ্যা "15" এর উপর ভিত্তি করে তৈরি করে (দশমিক ১৩, একটি চর হিসাবে এটি "ক্যারিজ রিটার্ন"), যা আপনি তারপরে একটি intপূর্ণসংখ্যার সাথে সংযুক্ত করে। চরগুলি 16 বিট পূর্ণসংখ্যার কারণ এটি বৈধ, সুতরাং এটি একটি নিরাপদ আপকাস্ট এবং জাভা দ্বারা ingালাই সম্পর্কে কোনও বিজ্ঞপ্তি প্রকাশ করা হয়নি। অন্যান্য উত্তরগুলি ইতিমধ্যে পুরো অষ্টাল / দশমিক জিনিসটি কভার করে।
মাইক 'পোম্যাক্স' কামারম্যানস

উত্তর:


116

আপনি একটি অক্ষরকে আক্ষরিক অর্পণ করেছেন, যা একক উদ্ধৃতি দ্বারা সীমিত করা হয়, যেমন 'a'(একটি স্ট্রিং আক্ষরিক থেকে পৃথক, যা ডাবল উদ্ধৃতি দ্বারা পৃথক করা হয়, যেমন "a") একটি intভেরিয়েবলের কাছে। জাভা 16-বিট স্বাক্ষরিত char32-বিট স্বাক্ষরিত থেকে একটি স্বয়ংক্রিয়ভাবে প্রসারিত কাস্ট করে int

যাইহোক, যখন কোনও অক্ষর আক্ষরিক একটি ব্যাকস্ল্যাশ হয় তার পরে 1-3 অঙ্ক হয়, এটি অক্ষরের একটি অষ্টাল ( বেস / রেডিক্স 8) প্রতিনিধিত্ব করে। এইভাবে:

  • \15= 1 × 8 + 5 = 13 (একটি গাড়ী ফেরত; একই হিসাবে '\r')
  • \25 = 2 × 8 + 5 = 21 (একটি নাক চর - নেতিবাচক স্বীকৃতি)
  • \100= 1 × 64 + 0 × 8 + 0 = 64 (@ প্রতীক; একই '@')

অক্ষর আক্ষরিক এবং অব্যাহতি ক্রম সম্পর্কে আরও তথ্যের জন্য, জেএলএস বিভাগগুলি দেখুন:

বরাত দিয়ে বিএনএফ 3.10.6 থেকে:

OctalEscape:
    \ OctalDigit
    \ OctalDigit OctalDigit
    \ ZeroToThree OctalDigit OctalDigit

OctalDigit: one of
    0 1 2 3 4 5 6 7

ZeroToThree: one of
    0 1 2 3

4
আমি এটি ৩.১০.১ বিভাগে খুঁজে পাই না .. এটি ৩.১০.৪-এর মধ্যে রয়েছে, চরিত্রের অক্ষরগুলি
রাফি কামাল

4
পূর্ণসংখ্যার আক্ষরিক অংশটি অপ্রাসঙ্গিক। বিভাগ 3.10.4 দেখুন । চরিত্র এবং স্ট্রিং এস্কেপ সিকোয়েন্সগুলির জন্য বিভাগ 3.10.6 দেখুন ।
টেড হপ

1-3 digits- এটা করা উচিত ছিল 0-3। আর তার 3 অঙ্ক অকট্যাল জন্য, দুই অঙ্ক অকট্যাল এখনও থেকে থাকতে পারে 0-7। প্রাক্তন '\ 77' এখনও বৈধ।
জয়মোহন

6
@ জয়মোহন আমার অর্থ পরিমাণে 1-3 ছিল, মূল্য নয়
বোহেমিয়ান

@ বোহেমিয়ান চমৎকার উত্তর. আমি আপনাকে এখানে অষ্টাল পালানোর আক্ষরিক সিনট্যাক্স যুক্ত করার পরামর্শ দিচ্ছি, তবে এটি আরও পরিষ্কার হবে। :)
রোহিত জৈন

19

স্বরলিপিটি \nnnজাভাতে একটি অষ্টাল অক্ষর কোড বোঝায়। সুতরাং int a = '\15'অক্টাল অক্ষর 15 এর স্বয়ংক্রিয়-কাস্ট'যুক্ত মান নির্ধারণ করে aযা দশমিক 13।


4
স্বরলিপি \nnnনেই না জাভা একটি অকট্যাল সংখ্যাকে বোঝান। ওপির কোডে এটি একটি অষ্টাল চরিত্রের পালানোর ক্রমকে বোঝায়। আশেপাশের উক্তি চিহ্নগুলি প্রয়োজনীয়। অক্ষরটি তারপরে অ্যাসাইনমেন্ট দ্বারা পূর্ণসংখ্যা মানকে প্রশস্ত করা হয়। (অষ্টাল সংখ্যাগুলি একটি শূন্য অঙ্কের দ্বারা চিহ্নিত করা হয়))
টেড হপ

ভাল যুক্তি; উত্তরে স্ব-কাস্টের উল্লেখ করা উচিত ছিল। উত্তর আপডেট করেছেন।
বাহমান মোওয়াকর

6

আপনি অঙ্কগুলিকে উদ্ধৃতিতে রাখার বিষয়টি আমাকে সন্দেহ করে তোলে যে এটি সংখ্যাকে একটি অক্ষর হিসাবে আক্ষরিক হিসাবে ব্যাখ্যা করছে। যে অঙ্কগুলি অনুসরণ করবে তা অবশ্যই অষ্টাল হতে হবে।

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