আমি সবেমাত্র আবিষ্কার করেছি যে ভিম স্পষ্টতই শূন্য দ্বারা বিভাগকে অনুমতি দেয়:
:let a=42/0
:echo a
প্রিন্ট 2147483647
(যা এর মান a
)।
এটি কি কোথাও নথিভুক্ত এবং কেন ভিএম শূন্য দ্বারা বিভাগের অনুমতি দেয়?
আমি সবেমাত্র আবিষ্কার করেছি যে ভিম স্পষ্টতই শূন্য দ্বারা বিভাগকে অনুমতি দেয়:
:let a=42/0
:echo a
প্রিন্ট 2147483647
(যা এর মান a
)।
এটি কি কোথাও নথিভুক্ত এবং কেন ভিএম শূন্য দ্বারা বিভাগের অনুমতি দেয়?
উত্তর:
এই আচরণটি eval বিভাগের অধীনে নথিভুক্ত করা হয় :
When dividing a Number by zero the result depends on the value:
0 / 0 = -0x80000000 (like NaN for Float)
>0 / 0 = 0x7fffffff (like positive infinity)
<0 / 0 = -0x7fffffff (like negative infinity)
(before Vim 7.2 it was always 0x7fffffff)
এখানে কেন:
42 / 0 tends to +infinity
এবং কীভাবে সর্বাধিক প্রাপ্ত সংখ্যার ভিম উপস্থাপন করে?
2147483647
দেখা :h limits
তদ্ব্যতীত, float2nr
ফাংশন ডকুমেন্টেশনে বলা হয়েছে:
When the value of {expr} is out of range for a |Number| the
result is truncated to 0x7fffffff or -0x7fffffff. NaN results
in -0x80000000.
সুতরাং আপনার এখানে আপনার 2 নম্বর রয়েছে: + 2147483647
এবং - 2147483647
।
সর্বশেষ সংখ্যাটি মান -2147483648
উপস্থাপনের জন্য ব্যবহৃত NaN
হয়।
এটি eval
বিভাগের দ্বারা এটি নিশ্চিত করা হয়েছে ( মেয়া কুলপা: @ কুওলম এটি আমার আগে পোস্ট করেছেন):
When dividing a Number by zero the result depends on the value:
0 / 0 = -0x80000000 (like NaN for Float)
>0 / 0 = 0x7fffffff (like positive infinity)
<0 / 0 = -0x7fffffff (like negative infinity)
@ ভ্যানল্যাসার যেমন বলেছেন, এটি কেবল পূর্ণসংখ্যার জন্য কাজ করে, ভাসমান পয়েন্ট সংখ্যাটির জন্য আপনার আরও ধারাবাহিকতা রয়েছে:
1/0.0 = inf
1/0.0 + 1 = inf
1/0.0 - 1 = inf
-1/0.0 = -inf
-1/0.0 - 1 = -inf
-1/0.0 + 1 = -inf
সীমাবদ্ধ নামক কিছু ব্যবহার করার সময় ক্যালকুলাসে এই আচরণটি কার্যকর।
লিমি এন -> 1 / এন = + ইনফ থেকে 0 ^ +
এটি এ হিসাবে লিখিত হতে পারে: যেমন এন -> 0 ^ +, 1 / n -> + ইনফ
এটি যেমন পড়ছে .. এন ডান থেকে শূন্যের কাছে যাওয়ার সাথে সাথে ফাংশন 1 / n ইতিবাচক অনন্তের কাছে পৌঁছেছে।
এই যুক্তিটির চাক্ষুষ ব্যাখ্যা দেখতে, http://www.wolframalpha.com/input/?i=limit+n-%3E0+of+1%2Fn এ পপ করুন
বিশেষত ভিম-স্ক্রিপ্টের জন্য, এএফআইএকি লোক যুক্তি এবং পূর্ণসংখ্যার গাণিতিক চেয়ে অনেক বেশি কিছু করে না। এটি এমন পরিস্থিতিতে হতে পারে যে এই আচরণটি সেই সময়টিকে একটি ভাল ধারণা বলে মনে হয়েছিল এবং এই মুহুর্তে এটি কেবল একটি উত্তরাধিকার শৈলী।
:echo 42/0.0
আরেকটি ফলাফল দেখার চেষ্টা করুন :)