আমি কীভাবে এক্সেলের একটি দশমিক সংখ্যায় একটি হেক্স নম্বরকে রূপান্তর করতে পারি?


11

আমার কাছে একটি মান রয়েছে যার মধ্যে এই মান রয়েছে:

0x00006cd2c0306953

এবং আমি এটি একটি সংখ্যায় রূপান্তর করতে চাই।

আমি চেষ্টা করেছিলাম:

=HEX2DEC(C8)

C8আমার হেক্স মান সহ কক্ষটি কোথায় ।

আমি একটি #NUM ত্রুটি পেয়েছি।

আমি কি ভুল করছি?


আমার মতে সি পুঁজি নয় এটি ছোট হতে পারে। সুতরাং '
সি

7
@ স্যান্ডি ৮৮ Excel৮: এক্সেল সেল অনিয়মের ক্ষেত্রে কোনও যত্ন করে না
নাথান

উত্তর:


5

আপনি কেবল ব্যবহার করতে পারেন:

HEX2DEC(right(A1,(len(A1)-2)))

len(A1)আপনি 0xস্ট্রিং দৈর্ঘ্য দেয় । এর দৈর্ঘ্য বাদ দিন 0x, বাকী স্ট্রিং হেক্স নম্বর। ডিসি পেতে এক্সেল ফাংশনটি ব্যবহার করুন।


আপনি কি এই চেষ্টা করেছেন? আপনি এই পৃষ্ঠায় কিছু পড়েছেন? এটি তিনবার বলা হয়েছে যা HEX2DECসর্বোচ্চ দশটি হেক্স অঙ্ক গ্রহণ করে। প্রশ্নের স্ট্রিংটি 0x00006cd2c030695318 অক্ষর দীর্ঘ। আপনার সমাধান মূল্যায়ন করে RIGHT(A1,(LEN(A1)-2)); 18-22 16 হয়, তাই 16 টি দৈর্ঘ্যের দীর্ঘ , তাই RIGHT(…)ফেরত দেয় 00006cd2c0306953। এমনকি যদি আপনি নেতৃস্থানীয় শূন্যগুলি সরিয়ে ফেলেন তবে আপনার 12 টি সংখ্যা রয়েছে যা এখনও অনেক বেশি। আপনি যদি এটি কাজ করতে পারেন তবে দয়া করে আপনার কনফিগারেশনটি বর্ণনা করুন। (অর্থাত, আপনি এক্সেলের কোন সংস্করণ ব্যবহার করছেন? এবং এটি কাজ করার জন্য আপনি কি কোনও কৌশলপূর্ণ কাজ করেছিলেন?)
স্কট

4

টুইটারজেএক্স-তে নির্দেশিত হিসাবে, Hex2Decএর ইনপুটটি 10 ​​টি অক্ষরে সীমাবদ্ধ এবং 6cd2c030695312 টি অক্ষর। সুতরাং এটি কাজ করবে না তবে এর জন্য আমাদের নিজস্ব ফাংশন রোল করি। ভিবিএ ব্যবহার করে একটি মডিউল যুক্ত করুন এবং নিম্নলিখিত কোডটি ব্যবহার করুন (আপনার প্রয়োজনের ভিত্তিতে সামঞ্জস্য করার প্রয়োজন হতে পারে)

' 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


3

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।


1
কেবল 40 তম বিটই সাইন বিট, যাতে আপনি কেবলমাত্র 64-বিট মানকে দুটি 32-বিট মানগুলিতে ভাগ করতে পারেন এবং এটি সর্বদা ইতিবাচক হবে। অন্যথায় হেক্স স্ট্রিংয়ে শূন্যের প্যাড করুন যদি এটি 37 বিটের চেয়ে কম হয়
ফুক্লভ

2

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

=HEX2DEC(LEFT(RIGHT(A$1,ROW()),1))*POWER(16,ROW()-1)

ধরে নিই যে আপনি এই টেম্প সেলগুলি সারিগুলিতে 1 থেকে 16 সারি করে রেখেছেন, এটি প্রতিটি চরিত্রকে ডান থেকে শুরু করে, একটি মানতে রূপান্তর করে এবং তারপরে 16 এর প্রাসঙ্গিক শক্তি প্রয়োগ করে কাজ করে your আপনার মান পাওয়ার জন্য সমস্ত 16 টি কোষ যোগ করুন।


1
এই প্রোগ্রামটিতে 16^(ROW() - 1)অনেক ক্লিনার চেয়ে পড়তে সহজ হয়POWER()
phuclv

2

নিম্নলিখিত চেষ্টা করুন:

=HEX2DEC(RIGHT(D93;8))+HEX2DEC(LEFT(D93;LEN(D93)-8))*POWER(2;32)

কেন ব্যবহার করবেন না 2^32?
ফুকলিভ

0

নিশ্চিত করুন যে আপনার কলামটিতে HX নম্বর রয়েছে 0x নেই। এইচএক্স নম্বরটি সি 8 হওয়া উচিত, 0xC8 নয়। আশা করি এটা সাহায্য করবে.


0

যদি কোনও নেতৃস্থানীয় বা অনুবর্তনবিহীন অ-হেক্স (ABCDEF0123456789) অক্ষর থাকে তবে HEX2DEC ব্যর্থ হয়। স্পেসগুলি একটি বাস্তব ল্যান্ডমাইন যা সেগুলি দৃশ্যমান নয়। লগ ফাইলগুলিতে স্ট্রিং হিসাবে প্রতিনিধিত্ব করা হেক্স সংখ্যাগুলি প্রায়শই শীর্ষস্থানীয় এবং / অথবা পিছনের স্থানগুলি ধারণ করে। আমি দেখতে পেয়েছি যে "= HEX2DEC (টিআরআইএম (এ 1)) সাধারণত এই সমস্যাটি সমাধান করবে = তবে," = HEX2DEC (রাইট (ট্রাইম (এ 1), 10) এর মতো কিছু প্রয়োজনীয়তা HEX2DEC এর 10 টি চরিত্রের সীমাবদ্ধতার কারণে হতে পারে।


-2

এই ফাংশনটি ব্যবহার করে দেখুন পরিবর্তন হয়েছে

=HEXDEC(C8)

সুতরাং এইচএক্স এবং ডিসির মধ্যে 2 নম্বর ছাড়াই


1
এটি মোটেও কাজ করে না
নাথান ফেলম্যান

আমি মনে করি এই ফাংশনটি ভাষা নির্ভর, আপনার এক্সেল অ্যাপ্লিকেশন এবং আপনার সংস্করণের মূল ভাষা কোনটি ..?
রিয়াদ ক্রিম

অফিস 2010 ইংলিশ
নাথান ফেলম্যান

4
HEX2DEC (বা HEXDEC) ফাংশনটি 40 বিট (10 টি অক্ষর) এর মধ্যে সীমাবদ্ধ এবং আপনার সংখ্যাটি 12 টি অক্ষরের অফিস.মাইক্রোসফট.com
রিয়াদ ক্রিম

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