sql >> Databáze >  >> RDS >> Mysql

2 způsoby, jak převést číslo na osmičkové číslo v MySQL

Pokud potřebujete převést číslo z desítkové soustavy na osmičkovou (základ 8), při používání MySQL vás napadnou dvě funkce. Jedna funkce je specificky pro provádění osmičkové převody, druhá je pro provádění převodů mezi různými bázemi. Jsou to následující:

OCT()
Tato funkce se používá speciálně pro převod z desítkové soustavy na osmičkovou.
CONV()
Tato funkce má obecnější účel. Umožňuje určit základ původního čísla a výsledek. Jinými slovy, můžete převádět z libovolného základu na jakýkoli základ (pokud je každý základ mezi 2 a 36).

Více o těchto dvou funkcích níže.

Funkce OCT()

Jak již bylo zmíněno, tato funkce je určena speciálně pro převod z desítkové soustavy na osmičkovou. Jeho syntaxe vypadá takto:

OCT(N)

Kde N je desetinné číslo, které chcete převést na osmičkové.

Zde je příklad:

SELECT OCT(8);

Výsledek:

+--------+
| OCT(8) |
+--------+
| 10     |
+--------+

Výsledek je 10 protože to je osmičkový ekvivalent 8 v desítkové soustavě.

Funkce CONV()

Jedná se o obecnější funkci, která vám umožňuje specifikovat nejen systém číslování, který se má převést na , ale také systém číslování pro převod z .

Syntaxe:

CONV(N,from_base,to_base)

Kde N je číslo, které se má převést, from_base je základ, ze kterého se má převádět, a to_base je základ pro převod.

Takže předchozí příklad můžeme přepsat na tento:

SELECT CONV(8, 10, 8);

Výsledek:

+----------------+
| CONV(8, 10, 8) |
+----------------+
| 10             |
+----------------+

A dostaneme stejný výsledek, protože převedeme číslo ze základu 10 na základ 8.

Jedna z výhod CONV() funkcí je, že můžete převádět mezi jinými bázemi. Například bychom mohli stejně snadno převést ze základu 8 na základ 16.

Co je Octal?

Osmičková je systém číselného zápisu, který má jako základ 8. To je na rozdíl od desítkové soustavy, která má jako základ 10.

V desítkové soustavě počítáme do 9, pak začneme znovu přidáním nuly za první číslici (např. po 9 přijde 10, což je 1 s přidanou nulou).

V osmičkovém (základ 8) však počítáme pouze do 7, než začneme znovu a přidáme nulu. Takže 10 v osmičkové soustavě je ekvivalentem 8 v desítkové soustavě.

Zde je tabulka pro ukázku:

Desetinné (základ 10) Oktální (základ 8)
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 10
9 11
10 12
11 13
12 14
13 15
14 16
15 17
16 20
17 21
18 22
19 23
20 24


  1. Proč jsem obdržel tuto výjimku SQLSyntaxError:ORA-00933:Příkaz SQL nebyl správně ukončen, když se pokouším provést tento dotaz JDBC?

  2. Jak UUID() funguje v MariaDB

  3. Preferovaný způsob ukládání hesel v databázi

  4. Jak obnovit databázi z C#