Рақамро ба Solution Heetadecimal Leetcode Solution гузаред


Сатҳи душворӣ осон
Аксар вақт пурсида мешавад Facebook Microsoft
Манипулясияи каме

Мушкилоти Табдил додани рақам ба Solution Hexadecimal Leetcode Solution ба мо як адади бутун медиҳад. Пас аз мо хоҳиш мекунад, ки додашударо табдил диҳем ҳамаҷониба дар системаи рақами даҳӣ ба системаи рақами шонздаҳӣ. Ба таври расмӣ, савол аз мо талаб мекунад, ки бутуни дар пойгоҳи 10 додашударо ба намоиши пойгоҳи 16 табдил диҳем. Мо аллакай як масъаларо ҳал карда будем, ки дар системаи адади даҳӣ ба мо рақаме дода мешуд. Ва бояд онро ба пойгоҳи 7 табдил дод. Пас, пеш аз гузаштан, биёед ба чанд мисол назар андозем.

мисол

26
1a

Рақамро ба Solution Heetadecimal Leetcode Solution гузаред

Шарҳ: Ин табдилдиҳӣ осон аст, агар дар бораи системаи ҳисобҳои шонздаҳӣ воқиф шавад. Аммо агар шумо аз он бехабар бошед, танҳо шумораи додашударо ба намоиши пойгоҳи 16 табдил диҳед. Мо инро бо тақсимоти такрорӣ ва нигоҳдории боқимонда анҷом медиҳем. Як чизро бояд қайд кард, ки 10 бо истифодаи 'a' дар аломатҳои шонздаҳӣ нишон дода шудааст.

-1
ffffffff

Шарҳ: Азбаски рақамҳои манфӣ ҳамчун аломати пурраи 2 нигоҳ дошта мешаванд. -1 дар нишонаи пурраи 2s он 11111111111111111111111111111111 аст. Ҳамин тавр, мо инро танҳо ба шонздаҳӣ табдил медиҳем, ки дар натиҷа нишон дода шудааст.

Усули табдили рақам ба ҳалли шонздаҳии Leetcode

Пеш аз он ки ба масъала ғарқ шавед, рақамро ба ҳалли шонздаҳии Leetcode табдил диҳед. Биёед аввал бо системаи ҳисобҳои шонздаҳӣ шинос шавем. Ҳамин тавр, системаи ҳисобҳои шонздаҳӣ низ ба системаи адади даҳӣ монанд аст, аммо рақамҳои аз 10 то 15 бо истифода аз алифбои хурд аз 'a' ба 'f' инъикос карда мешаванд. Ҳамин тавр, мо метавонем танҳо як адади бутунро дар системаи рақами даҳӣ ба намоиши пойгоҳи 16 табдил диҳем. Ва пас аз табдилдиҳӣ, мо рақамҳои 10 - 15 -ро бо a - f иваз мекунем. Аммо чӣ, мо бо рақамҳои манфӣ кор мекунем? Азбаски ададҳои манфӣ дар системаи бинарӣ дар 2s notation complement нигоҳ дошта мешаванд. Мо танҳо рақамро дар int unsigned нигоҳ медорем ва танҳо онро ба пойгоҳи 16 табдил медиҳем.

Рамз дар забони Java низ ҳамон як чизро иҷро мекунад, аммо бо истифодаи каме бо тарзи дигар каме амалӣ карда мешавад. Ҳамин тавр, аввал мо рақами додашударо бо 15 мегирем. Ин амал ба гирифтани mod бо 16 баробар аст. Пас истифодаи басти чап ба тақсим бо истифодаи 16 баробар аст.

рамз

Коди C ++ барои тағир додани рақам ба Solution Hexadecimal Leetcode Solution

#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

Рамзи Java барои табдил додани рақам ба Solution Hexadecimal Leetcode Solution

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

Таҳлили мураккабӣ

Мураккабии вақт

O (M (n) log n), ки дар он n дарозии вуруди додашуда, M (n) вақти тақсим кардани ду ададҳои 2 битӣ мебошад. Ҳамин тавр, мураккабии вақт логарифмист.

Мураккабии фазо

О (1), зеро мо дар бораи ҳар як рақами рақам ягон маълумот нигоҳ надоштем. Мураккабии фазо доимист.