আমার কাছে একটি মান রয়েছে যার মধ্যে এই মান রয়েছে:
0x00006cd2c0306953
এবং আমি এটি একটি সংখ্যায় রূপান্তর করতে চাই।
আমি চেষ্টা করেছিলাম:
=HEX2DEC(C8)
C8
আমার হেক্স মান সহ কক্ষটি কোথায় ।
আমি একটি #NUM ত্রুটি পেয়েছি।
আমি কি ভুল করছি?
আমার কাছে একটি মান রয়েছে যার মধ্যে এই মান রয়েছে:
0x00006cd2c0306953
এবং আমি এটি একটি সংখ্যায় রূপান্তর করতে চাই।
আমি চেষ্টা করেছিলাম:
=HEX2DEC(C8)
C8
আমার হেক্স মান সহ কক্ষটি কোথায় ।
আমি একটি #NUM ত্রুটি পেয়েছি।
আমি কি ভুল করছি?
উত্তর:
আপনি কেবল ব্যবহার করতে পারেন:
HEX2DEC(right(A1,(len(A1)-2)))
len(A1)
আপনি 0x
স্ট্রিং দৈর্ঘ্য দেয় । এর দৈর্ঘ্য বাদ দিন 0x
, বাকী স্ট্রিং হেক্স নম্বর। ডিসি পেতে এক্সেল ফাংশনটি ব্যবহার করুন।
HEX2DEC
সর্বোচ্চ দশটি হেক্স অঙ্ক গ্রহণ করে। প্রশ্নের স্ট্রিংটি 0x00006cd2c0306953
18 অক্ষর দীর্ঘ। আপনার সমাধান মূল্যায়ন করে RIGHT(A1,(LEN(A1)-2))
; 18-22 16 হয়, তাই 16 টি দৈর্ঘ্যের দীর্ঘ , তাই RIGHT(…)
ফেরত দেয় 00006cd2c0306953
। এমনকি যদি আপনি নেতৃস্থানীয় শূন্যগুলি সরিয়ে ফেলেন তবে আপনার 12 টি সংখ্যা রয়েছে যা এখনও অনেক বেশি। আপনি যদি এটি কাজ করতে পারেন তবে দয়া করে আপনার কনফিগারেশনটি বর্ণনা করুন। (অর্থাত, আপনি এক্সেলের কোন সংস্করণ ব্যবহার করছেন? এবং এটি কাজ করার জন্য আপনি কি কোনও কৌশলপূর্ণ কাজ করেছিলেন?)
টুইটারজেএক্স-তে নির্দেশিত হিসাবে, Hex2Dec
এর ইনপুটটি 10 টি অক্ষরে সীমাবদ্ধ এবং 6cd2c0306953
12 টি অক্ষর। সুতরাং এটি কাজ করবে না তবে এর জন্য আমাদের নিজস্ব ফাংশন রোল করি। ভিবিএ ব্যবহার করে একটি মডিউল যুক্ত করুন এবং নিম্নলিখিত কোডটি ব্যবহার করুন (আপনার প্রয়োজনের ভিত্তিতে সামঞ্জস্য করার প্রয়োজন হতে পারে)
' Force explicit declaration of variables
Option Explicit
' Convert hex to decimal
' In: Hex in string format
' Out: Double
Public Function HexadecimalToDecimal(HexValue As String) As Double
' If hex starts with 0x, replace it with &H to represent Hex that VBA will understand
Dim ModifiedHexValue As String
ModifiedHexValue = Replace(HexValue, "0x", "&H")
HexadecimalToDecimal = CDec(ModifiedHexValue)
End Function
এক্সেলের মধ্যে, ধরা যাক সেল এ 1 এর রয়েছে 0x00006cd2c0306953
, এ 2 এর সূত্রটির =HexadecimalToDecimal(A1)
ফলাফল হবে 1.19652E+14
। শূন্য দশমিকের সাথে একটি সংখ্যায় কলামটি ফর্ম্যাট করুন এবং ফলাফলটি হবে 119652423330131
।
HEX2DEC 10 টি অক্ষরে সীমাবদ্ধ তবে এর অর্থ এই নয় যে আমরা এটি ব্যবহার করতে পারি না। একবারে 10 টি অক্ষর রূপান্তর করতে এবং প্রতিটি ব্যবহারে 2 এর যথাযথ শক্তি প্রয়োগ করতে কেবল এটি বেশ কয়েকবার ব্যবহার করুন।
= HEX2DEC(RIGHT(C8,10))+HEX2DEC(MID(C8,3,5))*POWER(16,10)
[অস্বীকৃতি: এই মুহুর্তে স্বীকৃত]
পরে: আমি এখন একটি স্প্রেডশিটে এসেছি, পরীক্ষার জন্য প্রস্তুত। এমআইডি-তে 3,5 টি পরিবর্তন করুন 3,6 এ। হুম .. তবুও ঠিক নেই।
দেখা যাচ্ছে যে এইচএক্স 2 ডিইসি স্বাক্ষরিত হেক্স মানগুলিতে কাজ করছে, তাই প্রথম পদটি নেতিবাচক হয়ে যায়। নিশ্চিত না কেন, তবে এখানে স্থির সংস্করণটি 2 ^ 40 (বা 16 ^ 10, যেমন আমরা হেক্সে কাজ করছি) সংশোধন করতে যুক্ত করে:
= HEX2DEC(RIGHT(C8,10))+POWER(16,10) + HEX2DEC(MID(C8,3,6))*POWER(16,10)
তবে, এটি কেবলমাত্র তখনই কাজ করে যদি ডানদিকে (C8,10) negativeণাত্মক হয়ে থাকে। এখানে আমার সাধারণ সমাধান:
= HEX2DEC(RIGHT(C8,10))+IF(HEX2DEC(RIGHT(C8,10))<0,POWER(16,10),0) + HEX2DEC(MID(C8,3,6))*POWER(16,10)
Ugggh।
কোনও ফাংশন ব্যবহার না করেই এই রূপান্তরটি সম্পাদন করার একটি নোংরা উপায় (তার জন্য এই এক্সেল ফোরামের থ্রেডটি দেখুন ) স্ট্রিংয়ের প্রতিটি অক্ষরের মান গণনা করতে এই সূত্রটি ব্যবহার করা, তারপরে যোগফলগুলি যোগ করুন। এটি স্পষ্টতই সংখ্যার পচন করতে অস্থায়ী কক্ষগুলি ব্যবহার করে:
=HEX2DEC(LEFT(RIGHT(A$1,ROW()),1))*POWER(16,ROW()-1)
ধরে নিই যে আপনি এই টেম্প সেলগুলি সারিগুলিতে 1 থেকে 16 সারি করে রেখেছেন, এটি প্রতিটি চরিত্রকে ডান থেকে শুরু করে, একটি মানতে রূপান্তর করে এবং তারপরে 16 এর প্রাসঙ্গিক শক্তি প্রয়োগ করে কাজ করে your আপনার মান পাওয়ার জন্য সমস্ত 16 টি কোষ যোগ করুন।
16^(ROW() - 1)
অনেক ক্লিনার চেয়ে পড়তে সহজ হয়POWER()
নিশ্চিত করুন যে আপনার কলামটিতে HX নম্বর রয়েছে 0x নেই। এইচএক্স নম্বরটি সি 8 হওয়া উচিত, 0xC8 নয়। আশা করি এটা সাহায্য করবে.
যদি কোনও নেতৃস্থানীয় বা অনুবর্তনবিহীন অ-হেক্স (ABCDEF0123456789) অক্ষর থাকে তবে HEX2DEC ব্যর্থ হয়। স্পেসগুলি একটি বাস্তব ল্যান্ডমাইন যা সেগুলি দৃশ্যমান নয়। লগ ফাইলগুলিতে স্ট্রিং হিসাবে প্রতিনিধিত্ব করা হেক্স সংখ্যাগুলি প্রায়শই শীর্ষস্থানীয় এবং / অথবা পিছনের স্থানগুলি ধারণ করে। আমি দেখতে পেয়েছি যে "= HEX2DEC (টিআরআইএম (এ 1)) সাধারণত এই সমস্যাটি সমাধান করবে = তবে," = HEX2DEC (রাইট (ট্রাইম (এ 1), 10) এর মতো কিছু প্রয়োজনীয়তা HEX2DEC এর 10 টি চরিত্রের সীমাবদ্ধতার কারণে হতে পারে।
এই ফাংশনটি ব্যবহার করে দেখুন পরিবর্তন হয়েছে
=HEXDEC(C8)
সুতরাং এইচএক্স এবং ডিসির মধ্যে 2 নম্বর ছাড়াই
,
বা ;
এখানে কোনও ফাংশন