સંખ્યાને હેક્સાડેસિમલ લીટકોડ સોલ્યુશનમાં કન્વર્ટ કરો


મુશ્કેલી સ્તર સરળ
વારંવાર પૂછવામાં આવે છે ફેસબુક માઈક્રોસોફ્ટ
બિટ મેનિપ્યુલેશન

સંખ્યાને હેક્સાડેસિમલ લીટકોડ સોલ્યુશનમાં કન્વર્ટ થવામાં સમસ્યા આપણને પૂર્ણાંક પૂરા પાડે છે. પછી આપેલને કન્વર્ટ કરવા માટે પૂછે છે પૂર્ણાંક દશાંશ નંબર સિસ્ટમમાં હેક્સાડેસિમલ નંબર સિસ્ટમ. વધુ lyપચારિક રીતે, પ્રશ્ન અમને બેઝ 10 માં પૂર્ણાંક પૂર્ણાંકને બેઝ 16 ની રજૂઆતમાં રૂપાંતરિત કરવાની જરૂર છે. દશાંશ નંબર સિસ્ટમમાં અમને નંબર આપવામાં આવ્યો છે ત્યાં અમે પહેલાથી જ સમસ્યાનું સમાધાન કર્યું છે. અને તેને બેઝ 7 માં કન્વર્ટ કરવું પડ્યું તેથી, આગળ વધતા પહેલા, ચાલો થોડા ઉદાહરણો જોઈએ.

ઉદાહરણ

26
1a

સંખ્યાને હેક્સાડેસિમલ લીટકોડ સોલ્યુશનમાં કન્વર્ટ કરો

સમજૂતી: જો હેક્સાડેસિમલ નંબર સિસ્ટમ વિશે જાણવાનું થાય તો આ રૂપાંતર સરળ છે. પરંતુ જો તમે તેનાથી અજાણ છો, તો આપેલ નંબરને ફક્ત બેઝ 16 ની રજૂઆતમાં રૂપાંતરિત કરો. અમે પુનરાવર્તિત વિભાગ અને બાકીની સંગ્રહ કરીને. એક બાબત એ નોંધનીય છે કે, 10 ને હેક્સાડેસિમલ નોટેશનમાં 'એ' નો ઉપયોગ કરીને રજૂ કરવામાં આવે છે.

-1
ffffffff

સમજૂતી: નકારાત્મક સંખ્યાઓ તેમના 2 ની પૂરક સૂચક તરીકે સંગ્રહિત છે. -1 તેના 2s પૂરક નોટેશનમાં 11111111111111111111111111111111 છે. તેથી, આપણે ફક્ત તેને હેક્સાડેસિમલમાં રૂપાંતરિત કરીએ છીએ જે આઉટપુટમાં બતાવવામાં આવ્યું છે.

હેક્સાડેસિમલ લીટકોડ સોલ્યુશનમાં સંખ્યા કન્વર્ટ કરવા માટેનો અભિગમ

સમસ્યાનું deepંડે ડાઇવ કરતાં પહેલાં નંબરને હેક્સાડેસિમલ લીટકોડ સોલ્યુશનમાં કન્વર્ટ કરો. ચાલો પહેલા હેક્સાડેસિમલ નંબર સિસ્ટમથી પોતાને પરિચિત કરીએ. તેથી, હેક્સાડેસિમલ નંબર સિસ્ટમ પણ દશાંશ નંબર સિસ્ટમની જેમ છે પરંતુ 10 થી 15 નંબરો 'એ' થી 'એફ' થી લોઅર-કેસ મૂળાક્ષરોનો ઉપયોગ કરીને રજૂ થાય છે. તેથી, આપણે ફક્ત દશાંશ નંબર સિસ્ટમમાં પૂર્ણાંકને બેઝ 16 રજૂઆતમાં રૂપાંતરિત કરી શકીએ છીએ. અને રૂપાંતર પછી, અમે ફક્ત 10 - 15 નંબરોને એફ સાથે બદલીએ છીએ. પરંતુ, આપણે નકારાત્મક સંખ્યાઓ સાથે શું કરીએ? નકારાત્મક સંખ્યાઓ દ્વિસંગી સિસ્ટમમાં 2s પૂરક સૂચનમાં સંગ્રહિત છે. અમે ફક્ત સંખ્યાને સહી વિનાનાં પૂર્ણાંકમાં સંગ્રહિત કરીએ છીએ અને તેને ફક્ત આધાર 16 માં કન્વર્ટ કરીએ છીએ.

જાવા ભાષાનો કોડ પણ આ જ વસ્તુ કરે છે પરંતુ બીટ મેનીપ્યુલેશનનો ઉપયોગ કરીને થોડી જુદી રીતે લાગુ કરવામાં આવે છે. તેથી, પહેલા આપણે 15 સાથે આપેલ સંખ્યાને લઈએ છીએ. આ કામગીરી 16 સાથે મોડ લેવાની બરાબર છે. પછી ડાબી પાળીનો ઉપયોગ 16 નો ઉપયોગ કરીને ડિવિઝન સમાન છે.

કોડ

સંખ્યાને હેક્સાડેસિમલ લીટકોડ સોલ્યુશનમાં કન્વર્ટ કરવા માટે સી ++ કોડ

#include <bits/stdc++.h>
using namespace std;

const string decToHex = "0123456789abcdef";

string toHex(int n){
    if(n==0)
        return "0";
    unsigned int num = n;
    string ans = "";
    while(num > 0){
        ans = decToHex[num%16] + ans;
        num /= 16;
    }
    return ans;
}

int main(){
    cout<<toHex(26);
}
1a

સંખ્યાને હેક્સાડેસિમલ લીટકોડ સોલ્યુશનમાં કન્વર્ટ કરવા માટે જાવા કોડ

import java.util.*;
import java.lang.*;
import java.io.*;

class Solution
{
  public static String toHex(int n) {
        String decToHex = "0123456789abcdef";
        if(n==0)
            return "0";
        int num = n;
        String ans = "";
        while(num != 0){
            ans = decToHex.charAt(num&15) + ans;
            num = num >>> 4;
        }
        return ans;
    }
    
  public static void main (String[] args) throws java.lang.Exception
  {
    System.out.print(toHex(-1));
  }
}
ffffffff

જટિલતા વિશ્લેષણ

સમય જટિલતા

ઓ (એમ (એન) લ nગ એન), જ્યાં n આપેલ ઇનપુટની લંબાઈ છે, એમ (એન) તે સમય છે જે બે 2-બીટ નંબરોને વિભાજિત કરવા માટે લે છે. તેથી, સમયની જટિલતા લોગરીધમિક છે.

અવકાશ જટિલતા

ઓ (1), કારણ કે અમે સંખ્યામાં દરેક અંક સાથે સંબંધિત કોઈ માહિતી સંગ્રહિત કરી નથી. જગ્યાની જટિલતા સતત છે.