### Author Topic: Number systems  (Read 8543 times)

0 Members and 1 Guest are viewing this topic.

#### Anima

• LV4 Regular (Next: 200)
• Posts: 133
• Rating: +4/-0
##### Number systems
« on: August 01, 2011, 01:32:48 pm »
I currently work at a small TI-BASIC program that converts numbers in the following several other systems:
Binary -> Decimal
Decimal -> Binary

Currently I am working to convert a binary number to decimal. How to do it mathematically, I know, but I like the whole then fails to implement in TI-BASIC. Therefore I need some help from a math expert, can someone give me a little food for thought / Code snippets / or similar. to give to whom I do that? Would be very nice.

Sorry for my bad English. I'm German.

#### AngelFish

• Is this my custom title?
• LV12 Extreme Poster (Next: 5000)
• Posts: 3242
• Rating: +270/-27
• I'm a Fishbot
##### Re: Number systems
« Reply #1 on: August 01, 2011, 01:39:52 pm »
Spoiler For The Most optimized base converter possible:
Code: [Select]
PROGRAM:BASECONV:Input Str1:Ans→A:Ans(2→A:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ→Str2:length(Str1:sum(seq(LA(1)^(Ans-A)(inString(Str2,sub(Str1,A,1))-1),A,1,Ans→B:"░ // one space:For(C,1,log(AB+1)/log(A:sub(Str2,int(E5×√2+AfPart(B/A^C)),1)+Ans:End:Ans

Example of usage:

Code: [Select]
{16,10:prgmBASECONV?7C► 124

In other words:
Code: [Select]
{<Base in>,<Base to be converted to>:prgmBASECONVInput Number► Answer
Code courtesy of weregoose.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

#### Anima

• LV4 Regular (Next: 200)
• Posts: 133
• Rating: +4/-0
##### Re: Number systems
« Reply #2 on: August 01, 2011, 01:50:03 pm »
There is an error in line 9:
ERR:ARGUMENT

Sorry for my bad English. I'm German.

#### Eiyeron

• Urist McEiyolobster
• LV10 31337 u53r (Next: 2000)
• Posts: 1430
• Rating: +130/-10
• (-_(//));
##### Re: Number systems
« Reply #3 on: August 13, 2011, 07:15:09 pm »
BIn to dec? HUm...
I  sugger you to make a system who'll decompose your decimal into a list or a variable right to left, then if the Nst number, then total += 2^N
00110100010 //left to right

Let me think...
int(10(float(.1num)) gives you the last number
then
(int(100(float.01(num))-last)/0 gives you the before-last number, and so on...

Hint: int log gives you the numbers composing your number -1.
int log 1000011 = 6

If you use the strings, that would be easily: you just read the string right to left, then apply the famous Total + 2^n->Total!
Excuse-me, I don't program with Ti...

a Hexadeciaml number support 4 bits (2^4 = 16), So divideyour numbers into 4 bits, then convert to Hexa.

Hexa to dec is easy, I think that don't need any help. Yes? So:
Looping right form left, then convert 16^N, i think.
« Last Edit: August 13, 2011, 07:19:55 pm by Eiyeron »

#### BlakPilar

• Posts: 734
• Rating: +44/-1
##### Re: Number systems
« Reply #4 on: August 13, 2011, 07:49:58 pm »
Nowhere near as optimized as weregoose's, but I made a program for all of the original systems you stated found here. I'm sure the loops could be combined to do something like weregose's, but I' too lazy to do something like that on-calc at the moment.

EDIT: Fixed my incorrectedness
« Last Edit: August 13, 2011, 07:54:35 pm by BlakPilar »

#### AngelFish

• Is this my custom title?
• LV12 Extreme Poster (Next: 5000)
• Posts: 3242
• Rating: +270/-27
• I'm a Fishbot
##### Re: Number systems
« Reply #5 on: August 13, 2011, 07:52:16 pm »
Weregoose wrote that code I posted, not me

Sorry if that wasn't clear.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ