גער אַ נומער צו העקסאַדעסימאַל לעעטקאָדע סאַלושאַן


שוועריקייט לעוועל גרינג
אָפט געבעטן אין facebook מייקראָסאָפֿט
ביסל מאַניפּיאַליישאַן

די פּראָבלעם קאָנווערט אַ נומער צו העקסאַדעסימאַל לעעטקאָדע סאַלושאַן גיט אונדז אַ גאַנץ נומער. דערנאָך בעט אונדז צו בייַטן די געגעבן ינטעגער אין דעצימאַל נומער סיסטעם צו העקסאַדעסימאַל נומער סיסטעם. מער פאָרמאַללי, די קשיא ריקווייערז אונדז צו בייַטן אַ ינטאַדזשער געגעבן אין באַזע 10 צו אַ באַזע 16 פאַרטרעטונג. מיר האָבן שוין סאַלווד אַ פּראָבלעם אין דעם דעצימאַל נומער סיסטעם. און מיר האָבן צו בייַטן עס אין באַזע 7. אַזוי, איידער מיר גיינ ווייַטער, לאָזן ס נעמען אַ ביסל ביישפילן.

בייַשפּיל

26
1a

גער אַ נומער צו העקסאַדעסימאַל לעעטקאָדע סאַלושאַן

דערקלערונג: די קאַנווערזשאַן איז גרינג אויב איר וויסן וועגן די העקסאַדעסימאַל נומער סיסטעם. אָבער אויב איר ניטאָ ניט וויסנדיק פון עס, נאָר גער די געגעבן נומער אין באַזע 16 פאַרטרעטונג. מיר טאָן דאָס דורך ריפּעטיטיוו אָפּטייל און סטאָרד רעשט. איין זאַך צו טאָן אַז 10 איז רעפּריזענטיד מיט 'a' אין העקסאַדעסימאַל נאָוטיישאַן.

-1
ffffffff

דערקלערונג: זינט די נעגאַטיוו נומערן זענען סטאָרד ווי זייער 2 ס דערגאַנג נאָוטיישאַן. די -1 אין זייַן 2 ס דערגאַנג נאָוטיישאַן איז 11111111111111111111111111111111. אַזוי, מיר נאָר גער דאָס צו העקסאַדעסימאַל וואָס איז געוויזן אין די פּראָדוקציע.

צוגאַנג צו קאָנווערט אַ נומער צו העקסאַדעסימאַל לעעטקאָדע סאַלושאַן

איידער דייווינג טיף אין דעם פּראָבלעם קאָנווערט אַ נומער צו העקסאַדעסימאַל לעעטקאָדע סאַלושאַן. זאל אונדז ערשטער באקענען זיך מיט די העקסאַדעסימאַל נומער סיסטעם. אַזוי, די העקסאַדעסימאַל נומער סיסטעם איז אויך ווי די דעצימאַל נומער סיסטעם, אָבער די נומערן 10-15 זענען רעפּריזענטיד מיט קליין-אַלפאַבעץ פֿון 'a' צו 'F'. אַזוי, מיר קענען פשוט גער אַ גאַנץ נומער אין אַ דעצימאַל נומער סיסטעם צו באַזע 16 פאַרטרעטונג. און נאָך קאַנווערזשאַן, מיר פשוט פאַרבייַטן די נומערן 10 - 15 מיט a - f. אָבער וואָס טאָן מיר טאָן מיט נעגאַטיוו נומערן? זינט נעגאַטיוו נומערן זענען סטאָרד אין 2 ס דערגאַנג נאָוטיישאַן אין די ביינערי סיסטעם. מיר נאָר קראָם די נומער אין אַ ונסיגנעד ינט און נאָר קאָנווערט עס אין באַזע 16.

די קאָד אין Java שפּראַך אויך פּערפאָרמז די זעלבע זאַך אָבער איז ימפּלאַמענאַד אין אַ ביסל אַנדערש שטייגער ניצן ביסל מאַניפּיאַליישאַן. ערשטער, מיר נעמען & פון די געגעבן נומער מיט 15. די אָפּעראַציע איז עקוויוואַלענט צו נעמען מאָד מיט 16. דערנאָך ניצן לינקס שיפט איז עקוויוואַלענט צו דיוויזשאַן מיט 16.

קאָדעקס

C ++ קאָד צו קאָנווערט אַ נומער צו העקסאַדעסימאַל לעעטקאָדע סאַלושאַן

#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), ווו n איז די לענג פון די געגעבן אַרייַנשרייַב, M (n) איז די צייט וואָס עס נעמט צו צעטיילן צוויי 2-ביסל נומערן. די קאַמפּלעקסיטי פון דער צייט איז לאָגאַריטמיק.

ספעיס קאַמפּלעקסיטי

אָ (1), זינט מיר האָבן ניט סטאָרד קיין דאַטן וועגן יעדער ציפֿער אין די נומער. די פּלאַץ קאַמפּלעקסיטי איז קעסיידערדיק.