স্বাক্ষরযুক্ত পূর্ণসংখ্যা ওভারফ্লো সংজ্ঞায়িত আচরণ কিন্তু স্বাক্ষরিত পূর্ণসংখ্যা ওভারফ্লো কেন হয় না?


209

স্বাক্ষরবিহীন পূর্ণসংখ্যা ওভারফ্লো সি এবং সি ++ উভয় মানের দ্বারা ভালভাবে সংজ্ঞায়িত। উদাহরণস্বরূপ, C99 স্ট্যান্ডার্ড ( §6.2.5/9) বলে

স্বাক্ষরযুক্ত অপারেন্ডগুলির সাথে জড়িত কোনও গণনা কখনই ow over over because over uns। Can can can can can can because because because because because because because because because because because because igned uns igned uns igned resulting

তবে, উভয় স্ট্যান্ডার্ডই স্বাক্ষর করে যে স্বাক্ষরকৃত পূর্ণসংখ্যার ওভারফ্লো অনির্ধারিত আচরণ। আবার, C99 স্ট্যান্ডার্ড থেকে ( §3.4.3/1)

অনাকাঙ্ক্ষিত আচরণের একটি উদাহরণ হল পূর্ণসংখ্যার উপর ওউ এর উপর আচরণ

এই reতিহাসিকতার জন্য কোনও historicalতিহাসিক বা (আরও ভাল!) প্রযুক্তিগত কারণ রয়েছে কি?


50
সম্ভবত কারণ স্বাক্ষরিত পূর্ণসংখ্যার উপস্থাপনের একাধিক উপায় রয়েছে। কোন পথে স্ট্যান্ডার্ডে নির্দিষ্ট করা হয়নি, কমপক্ষে সি ++ তে নয়।
janchopanza

দরকারী লিঙ্ক: en.wikipedia.org/wiki/Signed_number_representations
Robᵩ

7
জুয়ানচোপাঞ্জা যা বলেছেন তা বোধগম্য। যেহেতু আমি এটি বুঝতে পারি, একটি বড় অংশের মূল সি স্ট্যান্ডার্ড বিদ্যমান অনুশীলনকে কোডিং করেছে। স্বাক্ষরিত "ওভারফ্লো" কী করা উচিত সে সময়ে সমস্ত বাস্তবায়ন যদি সম্মত হয় তবে এটি মানসম্মত হওয়ার পক্ষে এটি একটি ভাল কারণ। স্বাক্ষরিত ওভারফ্লো কী করা উচিত সে বিষয়ে তারা একমত হননি, যাতে এটি স্ট্যান্ডার্ডে না পায়।

2
@ ডেভিডেলিইমন স্বাক্ষরযুক্ত মোড়ক ছাড়াও খুব সহজেই আবিষ্কারযোগ্য ( if (a + b < a))। স্বাক্ষরযুক্ত এবং স্বাক্ষরযুক্ত স্বাক্ষরযুক্ত উভয় প্রকারের ক্ষেত্রে গুণণের ওভারফ্লো শক্ত।

5
@ ডেভিডেলিম্যান: আপনি এটি সনাক্ত করতে পারবেন কিনা তা কেবল ইস্যু নয়, ফলাফল কী। একটি চিহ্ন + মান বাস্তবায়নের ক্ষেত্রে, MAX_INT+1 == -0দু'জনের পরিপূরক হিসাবে এটি হবেINT_MIN
ডেভিড রদ্রিগেজ - ড্রিবিস

উত্তর:


163

Reasonতিহাসিক কারণটি হ'ল বেশিরভাগ সি বাস্তবায়ন (সংকলক) এটি ব্যবহৃত পূর্ণসংখ্যার প্রতিনিধিত্বের সাথে প্রয়োগ করার পক্ষে ওভারফ্লো আচরণ যেটি সহজসাধ্য ছিল সবেমাত্র ব্যবহার করেছে। সি বাস্তবায়নগুলি সাধারণত সিপিইউ দ্বারা ব্যবহৃত একই প্রতিনিধিত্ব ব্যবহার করে - সুতরাং সিপিইউ দ্বারা ব্যবহৃত পূর্ণসংখ্যার প্রতিনিধিত্বের পরে ওভারফ্লো আচরণ হয়।

বাস্তবে, এটি কেবল স্বাক্ষরিত মানগুলির জন্য উপস্থাপনা যা বাস্তবায়ন অনুযায়ী পৃথক হতে পারে: একজনের পরিপূরক, দু'জনের পরিপূরক, সাইন-প্রস্থতা। স্বাক্ষরবিহীন প্রকারের জন্য স্ট্যান্ডার্ডের প্রকরণের প্রকরণের কোনও কারণ নেই কারণ কেবলমাত্র একটি বাইনারি প্রতিনিধিত্ব রয়েছে (মানটি কেবল বাইনারি প্রতিনিধিত্ব করে)।

প্রাসঙ্গিক উক্তি:

সি 99 6.2.6.1:3 :

স্বাক্ষরবিহীন বিট-ফিল্ডস এবং টাইপ স্বাক্ষরিত চরের বস্তুগুলিতে সঞ্চিত মানগুলি খাঁটি বাইনারি স্বরলিপি ব্যবহার করে প্রতিনিধিত্ব করা হবে।

C99 6.2.6.2 টিপুন :

যদি সাইন বিট এক হয় তবে নিম্নলিখিত মানগুলির মধ্যে একটিতে মানটি সংশোধন করা হবে:

- সাইন বিট 0 এর সাথে সম্পর্কিত মানটি উপেক্ষিত ( চিহ্ন এবং প্রস্থ );

- সাইন বিটের মান রয়েছে - (2 এন ) ( দুইটির পরিপূরক );

- সাইন বিটের মান রয়েছে - (2 এন - 1) ( এর পরিপূরক )।


আজকাল, সমস্ত প্রসেসর দু'জনের পরিপূরক প্রতিনিধিত্ব ব্যবহার করে তবে স্বাক্ষরিত গাণিতিক ওভারফ্লো অপরিবর্তিত রয়েছে এবং সংকলক নির্মাতারা চান এটি অপরিবর্তিত থাকতে পারে কারণ তারা অপ্টিমাইজেশনে সহায়তা করতে এই অপরিজ্ঞাততা ব্যবহার করে। উদাহরণস্বরূপ আয়ান ল্যান্স টেইলারের এই ব্লগ পোস্টটি বা অ্যাগনার ফগের এই অভিযোগ এবং তার বাগের প্রতিবেদনের উত্তরগুলি দেখুন।


6
এখানে গুরুত্বপূর্ণ দ্রষ্টব্যটি হ'ল 2 টির পরিপূরক স্বাক্ষরিত গাণিতিক ব্যতীত অন্য কোনও কিছু ব্যবহার করে আধুনিক বিশ্বে কোনও স্থাপত্য নেই । ভাষার মানগুলি এখনও বাস্তবায়নের অনুমতি দেয় যেমন পিডিপি -১ একটি খাঁটি historicalতিহাসিক নিদর্শন।
অ্যান্ডি রস

9
@ অ্যান্ড্যরোস কিন্তু 2013 এর পরেও এর পরিপূরক এবং নতুন রিলিজ সহ সিস্টেমগুলি (ওএস + সংকলক, স্বীকৃতভাবে একটি পুরানো ইতিহাসের সাথে স্বীকৃত) রয়েছে An উদাহরণ: ওএস
2200.

3
@ অ্যান্ডি রস আপনি কি "কোনও আর্কিটেকচার ... 2 এর পরিপূরক ব্যতীত অন্য কিছু ব্যবহার করার কথা বিবেচনা করবেন না ..." আজকে ডিএসপি এবং এমবেডেড প্রসেসরের স্বরলিপি অন্তর্ভুক্ত রয়েছে?
chux - মনিকা পুনরায় ইনস্টল করুন

11
@ অ্যান্ড্যরোস: যদিও 2s পরিপূরক ব্যতীত অন্য কিছু ব্যবহার করে "কোনও" আর্কিটেকচার নেই ("না" এর কিছু সংজ্ঞার জন্য), অবশ্যই সেখানে ডিএসপি আর্কিটেকচার রয়েছে যা স্বাক্ষরিত পূর্ণসংখ্যার জন্য স্যাটার্যাটিং গাণিতিক ব্যবহার করে।
স্টিফেন ক্যানন

10
স্বাক্ষরিত গাণিতিকগুলিকে স্যাচুরটিং অবশ্যই মানের সাথে সম্মতিযুক্ত। অবশ্যই মোড়কের নির্দেশাবলী স্বাক্ষরবিহীন পাটিগণিতের জন্য অবশ্যই ব্যবহার করা উচিত, তবে স্বাক্ষরযুক্ত বা স্বাক্ষরিত পাটিগণিতটি করা হচ্ছে কিনা তা জানতে সংকলকটিতে সর্বদা তথ্য থাকে, সুতরাং এটি অবশ্যই নির্দেশাবলী যথাযথভাবে চয়ন করতে পারে।
ক্যাফে

15

পাস্কেলের উত্তরের উত্তরের (যা আমি নিশ্চিত যে এটিই মূল প্রেরণা), এটিও সম্ভব যে কিছু প্রসেসর স্বাক্ষরিত পূর্ণসংখ্যার ওভারফ্লোতে ব্যতিক্রম ঘটায়, সম্ভবত সংকলককে "অন্য আচরণের ব্যবস্থা" করতে হলে কোনটি অবশ্যই সমস্যা সৃষ্টি করবে () যেমন সম্ভাব্য ওভারফ্লো পরীক্ষা করার জন্য অতিরিক্ত নির্দেশাবলী ব্যবহার করুন এবং সেই ক্ষেত্রে আলাদাভাবে গণনা করুন)।

এটিও লক্ষণীয় যে "অপরিজ্ঞাত আচরণ" এর অর্থ "কাজ করে না" doesn't এর অর্থ হ'ল বাস্তবায়নে সেই পরিস্থিতিতে তার পছন্দমতো যা করার অনুমতি দেওয়া হয়। এর মধ্যে "সঠিক জিনিস" করার পাশাপাশি "পুলিশকে কল করা" বা "ক্রাশ করা" অন্তর্ভুক্ত রয়েছে। বেশিরভাগ সংকলক, যখন সম্ভব হবে তখন "সঠিক কাজটি করুন" বেছে নেবেন, ধরে নিবেন যে এটি নির্ধারণ করা তুলনামূলকভাবে সহজ (এই ক্ষেত্রে এটি হ'ল)। যাইহোক, যদি আপনার গণনাগুলিতে অতিমাত্রায় প্রবাহ পড়ে থাকে তবে এটি বুঝতে হবে যে আসলে কী পরিণতি দেয় এবং সংকলক মায়েরা আপনার প্রত্যাশা ব্যতীত অন্য কিছু করে (এবং এটি সংকলন সংস্করণ, অপ্টিমাইজেশন সেটিংস ইত্যাদির উপর নির্ভর করে) ।


23
সংকলকরা চায় না যে আপনি তাদের উপর সঠিক কাজটি করার উপর নির্ভর করুন, যদিও তাদের মধ্যে বেশিরভাগই আপনাকে int f(int x) { return x+1>x; }অপ্টিমাইজেশান দিয়ে সংকলন করার সাথে সাথে আপনাকে প্রদর্শন করবে । জিসিসি এবং আইসিসি ডিফল্ট বিকল্পগুলির সাথে উপরেরটিকে অনুকূলিত করে return 1;
পাস্কেল কুয়াক

1
intঅপ্টিমাইজেশনের স্তরের উপর নির্ভর করে ওভারফ্রোমের সাথে মুখোমুখি হওয়ার সময় বিভিন্ন ফলাফল দেয় এমন একটি উদাহরণ প্রোগ্রামের জন্য , আদর্শে দেখুন / কেই 8 এনএম আমার মনে হয় এটি প্রমাণ করে যে আপনার উত্তরটি খারাপ পরামর্শ দেয়।
ম্যাগনাস হফ

আমি সেই অংশটি কিছুটা সংশোধন করেছি।
ম্যাটস পিটারসন

যদি সি একটি "মোড়ানো স্বাক্ষরিত দু'জনের পরিপূরক" পূর্ণসংখ্যার ঘোষণার উপায় সরবরাহ করে তবে সি প্ল্যাটফর্ম করতে পারে এমন কোনও প্ল্যাটফর্ম কমপক্ষে মাঝারিভাবে দক্ষতার সাথে এটি সমর্থন করার ক্ষেত্রে খুব বেশি সমস্যা করতে হবে না। অতিরিক্ত ওভারহেড পর্যাপ্ত হবে যে কোডটি মোড়ানোর আচরণের প্রয়োজন হয় না এমন ধরণের কোড ব্যবহার করা উচিত নয়, তবে দুটি এর পরিপূরক পূর্ণসংখ্যার বেশিরভাগ অপারেশন তুলনা এবং প্রচার ব্যতীত স্বাক্ষরবিহীন পূর্ণসংখ্যার সমতুল্য।
সুপারক্যাট

1
Compণাত্মক মানগুলির অস্তিত্ব থাকতে হবে এবং সংকলকটির সঠিকভাবে কাজ করার জন্য "কাজ" করা অবশ্যই প্রসেসরের অভ্যন্তরে স্বাক্ষরিত মানগুলির অভাবকে ঘিরে কাজ করা এবং স্বাক্ষরযুক্ত স্বীকৃত মানগুলি যেকোনটিই পরিপূরক বা দ্বিগুণ পরিপূরক হিসাবে ব্যবহার করা সম্ভব নয় most নির্দেশ সেটটি কি তার উপর ভিত্তি করে বোধশক্তি। এটির জন্য হার্ডওয়্যার সমর্থন থাকার চেয়ে এটি করা সাধারণত ধীরে ধীরে ধীরে ধীরে হবে তবে এটি এমন প্রসেসরের থেকে আলাদা নয় যা হার্ডওয়্যারে ভাসমান পয়েন্টকে সমর্থন করে না বা অনুরূপ - এটি কেবলমাত্র অতিরিক্ত কোড যুক্ত করে।
ম্যাটস পিটারসন

10

প্রথমত, দয়া করে নোট করুন যে সিডেল ৩.৪.৩, সমস্ত উদাহরণ এবং পাদদেশের নোটগুলির মতো, আদর্শিক পাঠ্য নয় এবং তাই উদ্ধৃত করার জন্য প্রাসঙ্গিক নয়!

প্রাসঙ্গিক পাঠ্য যা উল্লেখ করে যে পূর্ণসংখ্যার ও ভাসমানের ওভারফ্লো অনির্ধারিত আচরণ এটি:

সি 11 6.5 / 5

যদি কোনও অভিব্যক্তির মূল্যায়নের সময় একটি ব্যতিক্রমী শর্ত দেখা দেয় (এটি যদি ফলাফলটি গাণিতিকভাবে সংজ্ঞায়িত না হয় বা তার ধরণের জন্য উপস্থাপনযোগ্য মানের সীমার মধ্যে না থাকে), আচরণটি অনির্ধারিত।

স্বাক্ষরবিহীন পূর্ণসংখ্যার ধরণের আচরণ সম্পর্কে স্পষ্টতা এখানে পাওয়া যাবে:

সি 11 6.2.5 / 9

একটি স্বাক্ষরিত পূর্ণসংখ্যার ধরণের অব্যবহৃত মানগুলির সীমাটি স্বাক্ষরযুক্ত স্বাক্ষরযুক্ত পূর্ণসংখ্যার প্রকারের সাবরেঞ্জ এবং প্রতিটি ধরণের একই মানের প্রতিনিধিত্ব একই। স্বাক্ষরযুক্ত অপারেন্ডগুলির সাথে জড়িত কোনও গণনা কখনই উপচে পড়তে পারে না, কারণ ফলাফল স্বাক্ষরিত স্বাক্ষরযুক্ত পূর্ণসংখ্যার ধরণের দ্বারা প্রতিনিধিত্ব করা যায় না এমন ফলাফলটি মডুলো হ্রাস করা হয় যা ফলাফলের ধরণের দ্বারা চিহ্নিত হওয়া বৃহত্তম মানের চেয়ে বড় একটি সংখ্যা।

এটি স্বাক্ষরবিহীন পূর্ণসংখ্যার টাইপগুলিকে একটি বিশেষ কেস তৈরি করে।

এছাড়াও নোট করুন যে কোনও প্রকার যদি স্বাক্ষরিত ধরণের রূপান্তরিত হয় এবং পুরানো মানটি আর উপস্থাপন করা না যায় তবে সেখানে ব্যতিক্রম রয়েছে । আচরণটি তখন নিছক বাস্তবায়ন-সংজ্ঞায়িত হয় যদিও সংকেত উত্থাপিত হতে পারে।

সি 11 6.3.1.3

.3.৩.১.৩ স্বাক্ষরিত এবং স্বাক্ষরবিহীন পূর্ণসংখ্যাগুলি

যখন পূর্ণসংখ্যার ধরণের মান একটি মান _Bool ব্যতীত অন্য কোনও পূর্ণসংখ্যার ধরণে রূপান্তরিত হয়, যদি মানটি নতুন ধরণের দ্বারা উপস্থাপন করা যায়, তবে এটি অপরিবর্তিত থাকে।

অন্যথায়, যদি নতুন প্রকারটি স্বাক্ষরবিহীন থাকে, মানটি নতুন ধরণের সীমার মধ্যে না আসা পর্যন্ত নতুন ধরণের প্রতিনিধিত্ব করা যায় এমন সর্বাধিক মানের চেয়ে আরও একবার যোগ বা বিয়োগ করে মান রূপান্তরিত হয়।

অন্যথায়, নতুন ধরণের স্বাক্ষরিত এবং এতে মানটি উপস্থাপন করা যায় না; হয় ফলাফল বাস্তবায়ন-সংজ্ঞায়িত বা বাস্তবায়ন-সংজ্ঞায়িত সংকেত উত্থাপিত হয়।


6

অন্যান্য বিষয় ছাড়াও উল্লেখ করা হয়েছে, স্বাক্ষরবিহীন গণিত মোড়ানো স্বাক্ষরবিহীন পূর্ণসংখ্যা ধরনের আচরণ বিমূর্ত বীজগাণিতিক গ্রুপ হিসাবে (অর্থ, অন্যান্য বিষয়ের মধ্যে, মান কোন যুগল করে তোলে থাকার Xএবং Y, কিছু অন্যান্য মান সেখানে বিদ্যমান থাকবে Zযেমন যে X+Zআসবে, যদি সঠিকভাবে নিক্ষেপ , সমান Yএবং Y-Zইচ্ছার, যথাযথভাবে কাস্ট করা হলে, সমানX)। স্বাক্ষরবিহীন মানগুলি যদি কেবল স্টোরেজ-অবস্থানের ধরণের হয় এবং অন্তর্বর্তী-এক্সপ্রেশন ধরণের না হয় (যেমন, যদি বৃহত্তম সংখ্যাসূচক টাইপের কোনও স্বাক্ষরযুক্ত সমতুল্য না থাকে এবং স্বাক্ষরযুক্ত প্রকারের গাণিতিক ক্রিয়াকলাপগুলি এমনভাবে আচরণ করা হয় যেহেতু তারা প্রথমে তাদেরকে বড় স্বাক্ষরিত ধরণের রূপান্তরিত করেছিল, তবে সেখানে সংজ্ঞায়িত মোড়ানো আচরণের জন্য ততটা প্রয়োজন হবে না, তবে এমন কোনও ধরণের গণনা করা কঠিন যা উদাহরণস্বরূপ একটি সংযোজক বিপরীতমুখী নয়।

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


আমি বেশিরভাগ অনুসরণ করি না - কেন এটি একটি যুক্তিযুক্ত বিপরীতমুখী হতে সহায়তা করে? ওভারফ্লো আচরণ আসলে দরকারী এমন কোনও পরিস্থিতির বিষয়ে আমি সত্যিই ভাবতে পারি না ...
স্লেসকে

@ স্লেসকে: মানব-পঠনযোগ্যতার জন্য দশমিক ব্যবহার করে যদি একটি শক্তি মিটারটি 0003 পড়েন এবং পূর্ববর্তী পড়াটি 9995 ছিল, তার মানে কি এই -992 ইউনিট শক্তি ব্যবহৃত হয়েছিল, বা সেই 0008 ইউনিট শক্তি ব্যবহার করা হয়েছিল? 0003-9995 ফলন 0008 থাকা পরবর্তী ফলাফলগুলি গণনা করা সহজ করে তোলে। এটির ফলন -৯৯৯২ এটিকে কিছুটা বিশ্রী করে তুলবে। এটি না করতে সক্ষম হওয়া সত্ত্বেও, 0003 থেকে 9995 এর তুলনা করা প্রয়োজনীয় হয়ে উঠবে, লক্ষ্য করুন যে এটি কম, বিপরীত বিয়োগফলটি করুন, ফলাফলটি 9999 থেকে বিয়োগ করুন এবং যোগ করুন 1
সুপারক্যাট

@ সালস্ক: মানব এবং সংকলক উভয়ের পক্ষে মত প্রকাশের পুনর্লিখন এবং সরলকরণের জন্য পাটিগণিতের সংশ্লেষক, বিতরণকারী এবং ভ্রমণমূলক আইন প্রয়োগ করতে সক্ষম হওয়া খুব কার্যকর; উদাহরণস্বরূপ, যদি অভিব্যক্তিটি a+b-cএকটি লুপের মধ্যে গণনা করা হয়, bএবং cলুপের মধ্যে স্থির থাকে তবে লুপটির (b-c)বাইরে গণনা সরিয়ে নেওয়া সহায়ক হতে পারে তবে এটি করার জন্য অন্যান্য জিনিসের মধ্যে (b-c)একটি মান পাওয়া যায় যা যুক্ত হওয়ার সাথে a, ফলন হবে a+b-c, যার পরিবর্তে cএকটি অ্যাডিটিভ বিপরীত প্রয়োজন।
সুপারক্যাট

: ব্যাখ্যার জন্য ধন্যবাদ। যদি আমি এটি সঠিকভাবে বুঝতে পারি তবে আপনার উদাহরণগুলি সমস্তই ধরে নেয় যে আপনি আসলে ওভারফ্লো পরিচালনা করতে চান handle বেশিরভাগ ক্ষেত্রে আমি মুখোমুখি হয়েছি, ওভারফ্লো অনাকাঙ্ক্ষিত এবং আপনি এটি প্রতিরোধ করতে চান, কারণ ওভারফ্লো সহ একটি গণনার ফলাফল কার্যকর নয়। উদাহরণস্বরূপ, এনার্জি মিটারের জন্য আপনি সম্ভবত এমন ধরনের ব্যবহার করতে চান যা কখনই ওভারফ্লো হয় না।
স্লেসকে

1
... যেমন (a+b)-cঅঙ্কের a+(b-c)গাণিতিক মানটি b-cপ্রকারের মধ্যে উপস্থাপনযোগ্য কিনা তা সমান , এর সম্ভাব্য মানের সীমা নির্বিশেষে প্রতিস্থাপনটি বৈধ হবে (b-c)
ক্যাট

1

স্বাক্ষরবিহীন গাণিতিক সংজ্ঞায়িত হওয়ার জন্য অন্য কারণ হ'ল স্বাক্ষরযুক্ত সংখ্যাগুলি পূর্ণসংখ্যা 2 ul n গঠন করে, যেখানে এন স্বাক্ষরযুক্ত সংখ্যার প্রস্থ। স্বাক্ষরযুক্ত সংখ্যাগুলি হ'ল দশমিক সংখ্যাগুলির পরিবর্তে বাইনারি অঙ্কগুলি ব্যবহার করে প্রতিনিধিত্ব করে gers একটি মডুলাস সিস্টেমে মানক ক্রিয়াকলাপ সম্পাদন করা ভালভাবে বোঝা যায়।

ওপি'র উক্তিটি এই সত্যটিকে বোঝায়, তবে বাইনারিটিতে স্বাক্ষরবিহীন পূর্ণসংখ্যার উপস্থাপনের জন্য কেবল একটিই, দ্ব্যর্থহীন, যৌক্তিক উপায় রয়েছে তা হাইলাইট করে। বিপরীতে, স্বাক্ষরযুক্ত সংখ্যাগুলি প্রায়শই দুটি এর পরিপূরক ব্যবহার করে প্রতিনিধিত্ব করা হয় তবে মান হিসাবে বর্ণিত হিসাবে অন্যান্য পছন্দগুলি সম্ভব (বিভাগ 6.2.6.2)।

দুইটির পরিপূরক প্রতিনিধিত্ব নির্দিষ্ট ক্রিয়াকলাপগুলিকে বাইনারি ফর্ম্যাটে আরও বেশি বোঝার সুযোগ দেয়। উদাহরণস্বরূপ, numbersণাত্মক সংখ্যাগুলিকে বাড়ানো একই ধরণের ধনাত্মক সংখ্যার জন্য (ওভারফ্লো অবস্থার অধীনে প্রত্যাশা)। স্বাক্ষরিত এবং স্বাক্ষরবিহীন সংখ্যার জন্য মেশিন পর্যায়ে কিছু ক্রিয়াকলাপ একই হতে পারে। যাইহোক, এই ক্রিয়াকলাপগুলির ফলাফলটি ব্যাখ্যা করার সময়, কিছু ক্ষেত্রে অর্থ হয় না - ইতিবাচক এবং নেতিবাচক ওভারফ্লো। তদতিরিক্ত, অন্তর্নিহিত স্বাক্ষরিত উপস্থাপনার উপর নির্ভর করে ওভারফ্লো ফলাফলগুলি পৃথক হয়।


কাঠামোটি ক্ষেত্র হওয়ার জন্য কাঠামোর প্রতিটি উপাদানের যোগমূলক পরিচয় ব্যতীত অন্য গুণগুলি অবশ্যই একটি গুণিত বিপরীত থাকে। পূর্ণসংখ্যা কংগ্রেস মোড এন এর কাঠামো কেবল তখনই ক্ষেত্র হবে যখন এন এক বা প্রধান হবে [যখন হ্রাস করা ক্ষেত্র যখন এন == 1]। আমার উত্তরে আমি কী মিস করেছি বলে মনে হচ্ছে এমন কিছু আছে?
সুপারক্যাট

তুমি ঠিক. আমি প্রাইম পাওয়ার মডুলিতে বিভ্রান্ত হয়ে পড়েছিলাম। আসল প্রতিক্রিয়া সম্পাদিত।
yth

অতিরিক্ত এখানে বিভ্রান্তিকর যে আছে হয় অর্ডার 2 ^ n এর একটি ক্ষেত্র, এটা ঠিক রিং-isomorphic না পূর্ণসংখ্যার modulo 2 ^ n হল।
কেভিন ভেন্টুলো

এবং, 2 ^ 31-1 হ'ল একজন মার্সেন প্রাইম (তবে 2 ^ 63-1 টি প্রধান নয়)। এভাবে আমার মূল ধারণাটি নষ্ট হয়ে গেল। এছাড়াও, দিনটিতে পূর্ণসংখ্যার আকারগুলি আলাদা ছিল। সুতরাং, আমার ধারণাটি সর্বোত্তম ছিল সংশোধনবাদী।
yth

স্বাক্ষরবিহীন পূর্ণসংখ্যার একটি রিং তৈরি হয় (ক্ষেত্র নয়), নিম্ন-অর্ডারের অংশটি গ্রহণ করে একটি রিংও পাওয়া যায় এবং পুরো মানটির উপর ক্রিয়াকলাপ সম্পাদন করা হয় এবং তারপরে কাটাটি কেবল নীচের অংশে অপারেশন সম্পাদনের সমতুল্য আচরণ করবে, আইএমএইচও ছিল প্রায় অবশ্যই বিবেচনা।
সুপারক্যাট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.