-
1. Data: 2014-10-26 12:17:51
Temat: inne sposokodowania inta
Od: firr <p...@g...com>
zatanawiam sie czy przypadkiem nie daloby sie
wymyslec jakiegos innego sposobu enkodowania
integerow w slowach niz ten popularny
0- 00000000
1- 00000001
2- 00000010
3- 00000011
4- 00000100
...
moze jakis inny dawalby jakies uproszczenia przy kodowaniu czesci operacji
arytmetycznych?
-
2. Data: 2014-10-26 13:04:13
Temat: Re: inne sposokodowania inta
Od: bartekltg <b...@g...com>
On 26.10.2014 12:17, firr wrote:
> zatanawiam sie czy przypadkiem nie daloby sie
> wymyslec jakiegos innego sposobu enkodowania
> integerow w slowach niz ten popularny
>
> 0- 00000000
> 1- 00000001
> 2- 00000010
> 3- 00000011
> 4- 00000100
> ...
>
> moze jakis inny dawalby jakies uproszczenia przy kodowaniu czesci operacji
arytmetycznych?
Ten standardowy, czyli uzupełnieni owy do 2, już daje uproszczenia,
bo dodawanie i odejmowanie ze znakiem idzie tak samo, jak bez znaku.
Formatów z którymi eksperymentowano jest trochę.
http://pl.wikipedia.org/wiki/Kod_uzupe%C5%82nie%C5%8
4_do_jedno%C5%9Bci
http://pl.wikipedia.org/wiki/Kod_znak-modu%C5%82
Ciekawą koncepcją było użycie bazy o podstawie -2.
http://en.wikipedia.org/wiki/Negative_base
Zaimplementowano to na jednym (polskim!) komputerze.
Trochę więcej różnych przykładów.
http://en.wikipedia.org/wiki/Signed_number_represent
ations
Nieco inną metodą jest np to:
http://en.wikipedia.org/wiki/Binary-coded_decimal#Co
mparison_with_pure_binary
Obecnie rzadko stosowane.
pzdr
bartekltg
-
3. Data: 2014-10-26 13:51:28
Temat: Re: inne sposokodowania inta
Od: firr <p...@g...com>
W dniu niedziela, 26 października 2014 13:04:14 UTC+1 użytkownik bartekltg napisał:
> On 26.10.2014 12:17, firr wrote:
> > zatanawiam sie czy przypadkiem nie daloby sie
> > wymyslec jakiegos innego sposobu enkodowania
> > integerow w slowach niz ten popularny
> >
> > 0- 00000000
> > 1- 00000001
> > 2- 00000010
> > 3- 00000011
> > 4- 00000100
> > ...
> >
> > moze jakis inny dawalby jakies uproszczenia przy kodowaniu czesci operacji
arytmetycznych?
>
> Ten standardowy, czyli uzupełnieni owy do 2, już daje uproszczenia,
chodzi mnie ni teyle o kodowanie ujemnych co o zwykle inne kodowanie naturalnych, np
takie ktore nieco mnie pomagalo by w dodawaniu ale np nieco wiecej w czyms innym
przyklady takiego innego kodowania
0-00000000
1-00000001
2-00000010
3-00000100
4-00001000
5-00010000
ten jest ew akurat pewnie malo uzyteczny
(i niedokonczony) ale powstaje przynajmniej pytanie czy ten zwykly jest jedynym jako
tako naturalnym czy istnieje jeszcze jakis 'podobnie' naturalny
jest to zagadnienie nieco moze akademickie
ale przynajmniej warto zarysowac ze jest taki
problem ;o
-
4. Data: 2014-10-26 14:06:32
Temat: Re: inne sposokodowania inta
Od: firr <p...@g...com>
> przyklady takiego innego kodowania
0-00000000
1-00000001
2-00000010
3-00000100
4-00001000
5-00010000
6-00100000
7-01000000
tutaj na przyklad mnozenie 6*7 mozna by zapisac
6*7 = 01100000
problem natomiast bylby z wyrazaniem takich liczb jak 7*7*7.. itp ale pokombinowac
nad innymi sposobami enkodowania zawsze mozna
-
5. Data: 2014-10-26 14:20:49
Temat: Re: inne sposokodowania inta
Od: firr <p...@g...com>
W dniu niedziela, 26 października 2014 14:06:33 UTC+1 użytkownik firr napisał:
> > przyklady takiego innego kodowania
> 0-00000000
> 1-00000001
> 2-00000010
> 3-00000100
> 4-00001000
> 5-00010000
> 6-00100000
> 7-01000000
>
> tutaj na przyklad mnozenie 6*7 mozna by zapisac
>
> 6*7 = 01100000
>
> problem natomiast bylby z wyrazaniem takich liczb jak 7*7*7.. itp ale pokombinowac
nad
w sumie to prowadzi do dwuwymiarowego zapisu liczby bo np 7*7*7 byloby (na matrycy
8x8 = 64 bity)
"03000000"
........
........
........
........
........
.1......
........
........
mnozenie liczb tu byloby latwe gorzej z dodawaniem
-
6. Data: 2014-10-26 14:33:16
Temat: Re: inne sposokodowania inta
Od: firr <p...@g...com>
W dniu niedziela, 26 października 2014 14:20:51 UTC+1 użytkownik firr napisał:
> W dniu niedziela, 26 października 2014 14:06:33 UTC+1 użytkownik firr napisał:
> > > przyklady takiego innego kodowania
> > 0-00000000
> > 1-00000001
> > 2-00000010
> > 3-00000100
> > 4-00001000
> > 5-00010000
> > 6-00100000
> > 7-01000000
> >
> > tutaj na przyklad mnozenie 6*7 mozna by zapisac
> >
> > 6*7 = 01100000
> >
> > problem natomiast bylby z wyrazaniem takich liczb jak 7*7*7.. itp ale
pokombinowac nad
>
> w sumie to prowadzi do dwuwymiarowego zapisu liczby bo np 7*7*7 byloby (na matrycy
8x8 = 64 bity)
>
> "03000000"
>
> ........
> ........
> ........
> ........
> ........
> .1......
> ........
> ........
>
> mnozenie liczb tu byloby latwe gorzej z dodawaniem
w sumie chyba dla zapisu mnozeniuowego te co nie sa pierwsze mozna wywalic i zrobic
wtedy cos w stylu jakiejs takiej bazy
17-13-11-7-5-3-2
i tego zapisu np uzywac przy mnozeniach
i dzielenich
"00 0303" * "02 0010" = "02 0313" (?)
i na tym robic mnozenia i dzielenia
(jest to banalne
dosyc ale warto kiedys troche przemyslec
takie sprawy, moze jakies rodzeje kodow
na czyms takim by dzialaly szybciej
- z kolei ciekawe jak trudne na takim czyms byloby dodawanie ;< bo wyglada na trudne
-
7. Data: 2014-10-26 14:42:48
Temat: Re: inne sposokodowania inta
Od: firr <p...@g...com>
> - z kolei ciekawe jak trudne na takim czyms byloby dodawanie ;< bo wyglada na
trudne
moze troche odbieglem od tematu ale w kazdym razie ten przyklad ilustruje ze sa
przynajmniej mozliwe inne rodzaje kodowania liczb
0 - 1
1 - 2
10 - 3
2 - 4
100 - 5
11 - 6
1000 - 7
3 - 8
20 - 9
101 - 10
10000 - 11
12 - 12
100000 - 13
w sumie ciekawe, na 64 bitach najwieksza liczbaby byla chyba 7777 7777
ale chyab dosyc wczesnie pojawialby sie juz dziury w zapisie ( w sumie ten zapis sam
jest chyba dziurawy bo chyba pod tymi profilami te bity leza niewykorzystane trzebeby
to jakos przedefiniowac..
-
8. Data: 2014-10-26 15:16:07
Temat: Re: inne sposokodowania inta
Od: firr <p...@g...com>
w sumie mozna sie pokusic o jeszcze jedno rozwiazanie, cos w rodzaju zestwów kubków
o roznej bazie, wtedy dodawanie powinno byc
latwe - bo pewnie sumowaloby sie po prostu zawartosci kubkow, mnozenie tez chyba dosc
latwe bo mnozyloby sie zawartosci kubkow
+ robiloby dosyc latwe uproszczenia
zawartosci kubkow,
moze przydalaby sie przy tym look up tablica
liczb pierwszych -pozniej sie by mozna zastanowic
-
9. Data: 2014-10-26 15:40:16
Temat: Re: inne sposokodowania inta
Od: bartekltg <b...@g...com>
On 26.10.2014 13:51, firr wrote:
> W dniu niedziela, 26 października 2014 13:04:14 UTC+1 użytkownik
> bartekltg napisał:
>> On 26.10.2014 12:17, firr wrote:
>>> zatanawiam sie czy przypadkiem nie daloby sie wymyslec jakiegos
>>> innego sposobu enkodowania integerow w slowach niz ten popularny
>>>
>>> 0- 00000000 1- 00000001 2- 00000010 3- 00000011 4- 00000100 ...
>>>
>>> moze jakis inny dawalby jakies uproszczenia przy kodowaniu czesci
>>> operacji arytmetycznych?
>>
>> Ten standardowy, czyli uzupełnieni owy do 2, już daje
>> uproszczenia,
>
> chodzi mnie ni teyle o kodowanie ujemnych co o zwykle inne kodowanie
> naturalnych, np takie ktore nieco mnie pomagalo by w dodawaniu ale np
> nieco wiecej w czyms innym
Poczytaj, będziesz miał zalety i wady danych kodowań.
>
> przyklady takiego innego kodowania 0-00000000 1-00000001 2-00000010
> 3-00000100 4-00001000 5-00010000
I jak wygląda 4*5=20?
http://en.wikipedia.org/wiki/Unary_numeral_system
>
> ten jest ew akurat pewnie malo uzyteczny (i niedokonczony) ale
> powstaje przynajmniej pytanie czy ten zwykly jest jedynym jako tako
> naturalnym czy istnieje jeszcze jakis 'podobnie' naturalny
System pozycyjny wydaje się najwygodniejszy do operacji arytmetycznych.
Spróbuj sobie pododawać i pomnożyć w liczbach rzymskich.
> jest to zagadnienie nieco moze akademickie ale przynajmniej warto
> zarysowac ze jest taki problem ;o
pzdr
bartekltg
-
10. Data: 2014-10-26 15:55:43
Temat: Re: inne sposokodowania inta
Od: bartekltg <b...@g...com>
On 26.10.2014 14:33, firr wrote:
>
> 17-13-11-7-5-3-2
>
> i tego zapisu np uzywac przy mnozeniach
> i dzielenich
>
> "00 0303" * "02 0010" = "02 0313" (?)
> i na tym robic mnozenia i dzielenia
> (jest to banalne
> dosyc ale warto kiedys troche przemyslec
> takie sprawy, moze jakies rodzeje kodow
> na czyms takim by dzialaly szybciej
> - z kolei ciekawe jak trudne na takim czyms byloby dodawanie ;< bo wyglada na
trudne
Rozkład na czynniki pierwsze jest kiepskim sposobem na zapis liczb.
Liczb pierwszych jest dużo!
W wśród liczb 32 bitowych bez znaku jest 203 280 221 liczb pierwszych!
Chcesz przeznaczyć 200 mln bitów na liczbę, czy za każdym
razem trzymać listę kilkunastu par podstawa-wykładnik?
Z tej drugiej metody nawet często korzystam, ale w specyficznych
teorioliczbowych algorytmach, nie nadaje się to do zwykłych obliczeń.
Zwłaszcza, że dodawanie jest tak trudne, jak rozkład na czynniki
pierwsze! Trzeba przerobić nasz kod na nortmlaą liczbę, dodać,
a następnie znów rozłożyć. Jeśli dałoby się prosciej, mielibyśmy
prosty i skuteczny algorytm rozkładu dowolnej liczby:)
pzdr
bartekltg