bitGet problem
-
@faz808 said in bitGet problem:
0x11111111111
Isn't 0x11111111111 in hex 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 in binary in which case bit 3 is indeed 0?
-
When you start a number with
0x
that means you're using a hexidecimal notation (so base 16). So0x11111111111
in base 10 (our counting system) would be: 1172812402961
In binary (base 2) it would be:10001000100010001000100010001000100010001
So even though in hexidecimal the value is all 1's, in binary that's not the case.
The documentation of bitGet doesn't strictly specify it, but I'm assuming bit 0 is the last bit, bit 1 is the one to the left of it, so that would mean that bit 3 would be "1
0
001" a zero indeed.Hope that helps :)
-
Pianofire beat me to it :P
-
You are right the documentation isn't very clear but it seems to start at the least significant bit with a start index of 0
-
Seems to be so. In the end all the necessary information is actually there (and the example code shows that bit 0 is used to decide if the number is even or odd), but you need to process all the information to get to it :)
-
Of course !
In my example,
bit 0 = 1
bit 1 = 0
bit 2 = 0
bit 3 = 0
bit 4 = 1I forgot to convert my required binary number ( 11111111) to hex..
result = bitGet (0xff, 3)
drawtext (33,333,32, white, result)
result = 1 asv expectedBrain now in gear. Thanks for the help.
-
I'm wondering how this is "beginners". (not complaining btw)
Must mean I'm in the ultra beginners category ;) -
Well you can be an experienced programmer but still a beginner at Fuze
-
Very true, ..facepalm..
-
Is there any way to actually use a binary number in fuze without converting it.
-
@xevdev I think it depends what you are trying to do if you want to replace your code by binary coding i dont think that works in fuze
-
I'm not sure what you mean by
us a binary number
in this case? -
@petermeisenstein in this question they used a hexadecimal number ( base 16 ) by putting an x in a number as in 0x000001 giving 1 in decimal ( base 10 ) so I was wondering if I put some other letter , I've used % in other languages , to denote that it's a binary number ( base 2 )
-
@xevdev So i am not good at maths so I am sorry for any wrong thing what I say now. Isnt % the modulo I dont know if you say modulo in english.
-
@petermeisenstein yes in fuze it is and I wrote my own mod function because I was expecting a function name not a symbol . So each language is different .
-
@xevdev
And you are dealing with binary stuff in fuze very cool. Back to the roots of codeing -
@petermeisenstein not if there's no way to put a binary number in to my code so I'll use
Bin = "10110010"
If bin [0] = "1" then print("true")
And because the first digit is 1 it will print true
I think ?
Got caught out again use
If bin [0] ==
Double equals -
@xevdev Yeah I would also say maybe it helps you there is strcontains and other string stuff in fuze. Are you programming a ROM for a cpu emulator ?
-
No I just want a binary number to use as a bitmask
And the code above doesn't work which is funny because I just wrote a whole program which uses something similar to that. -
For the OCR code generator I have a couple of user functions:
// convert a decimal number to a binary string function dec2bin(n,length_type) string byte="" if length_type > 0 then while int(n) > 0 loop nbit = (n % 2) byte = str(nbit) + byte n = n / 2 repeat //pad to length_type bits... while len(byte) < length_type loop byte = "0" + byte repeat endif return byte // convert a binary string to decimal function bin2dec( binaryString ) int result = 0 int i = 0 for i = 0 to len( binaryString ) loop result *= 2 result += int( binaryString[ i ] ) repeat return result
Credit to @faz808 for the first one