<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">Question 1:</div><div class="gmail_default" style="font-family:monospace,monospace">  Why is the file written that way in the first place?</div><div class="gmail_default" style="font-family:monospace,monospace">  With multi-terabyte drives as cheap as they are, you</div><div class="gmail_default" style="font-family:monospace,monospace">  may not care about bloating the space your data use,</div><div class="gmail_default" style="font-family:monospace,monospace">  but more characters => more time.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">Question 2:</div><div class="gmail_default" style="font-family:monospace,monospace">  Depending on what bit manipulation you want to do,</div><div class="gmail_default" style="font-family:monospace,monospace">  it may be more convenient to work with integers</div><div class="gmail_default" style="font-family:monospace,monospace">  rather than binaries.  So what exactly do you want</div><div class="gmail_default" style="font-family:monospace,monospace">  to do with these?</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">b2i(Binary) -><br>    b2i_loop(Binary, 0).<br><br>b2i_loop(<<Digit:8,Rest/binary>>, N)<br>  when $0 =< Digit, Digit =< $1 -><br>    b2i_loop(Rest, N*2 + (Digit - $0));<br>b2i_loop(<<>>, N) -><br>    N.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">I have tested this code for converting <<"...">></div><div class="gmail_default" style="font-family:monospace,monospace">from a sequence of 0/1 characters to an integer.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 10 Dec 2021 at 08:10, Java House <<a href="mailto:java4dev@gmail.com">java4dev@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi Kenneth</div><div>my problem is that I need to extract every bit separately.</div><div>So I need to first bit of each number and the second and the third etc.</div><div>I want to do bit manipulation not just read the number.</div><div><br></div><div>But you answered my second question on how to convert a list of digits to a binary.</div><div>So this is the second part of my problem</div><div><br></div><div>29> lists:concat([1,1,0,0,1,1,0,0,1,0,1,0]).<br>"110011001010"<br>30> list_to_binary(lists:concat([1,1,0,0,1,1,0,0,1,0,1,0])).<br><<"110011001010">><br>31> binary_to_integer(list_to_binary(lists:concat([1,1,0,0,1,1,0,0,1,0,1,0]))).<br>110011001010<br>32> binary_to_integer(list_to_binary(lists:concat([1,1,0,0,1,1,0,0,1,0,1,0])), 2).<br>3274<br></div><div><br></div><div>Too many conversations for just a simple bit manipulation.</div><div><br></div><div>Thank you all for your contribution.</div><div><br></div><div>Kind Regards</div><div>Nikolas</div><div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Στις Πέμ 9 Δεκ 2021 στις 7:33 μ.μ., ο/η Kenneth Lundin <<a href="mailto:kenneth@erlang.org" target="_blank">kenneth@erlang.org</a>> έγραψε:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto"><div dir="ltr">Why not read it with<br></div><div dir="ltr"><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace">ok, <span style="color:rgb(102,14,122)">Data</span>} = file:read_file(<span style="color:rgb(6,125,23)">"binary.input"</span>),</pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace">then split the binary to a list of lines</pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace">BinList = binary:split(Data,<<"\n">>,[global])</pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace">each element in the list is a binary like this:</pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace"> B = <<"1010101100">></pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace">covert this to an integer with:</pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace"><br></pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace">binary_to_integer(B,2)</pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace">and there you have your integer which you can do whatever you like with</pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace"><br></pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace">Note, this is written on my phone so it is not tested, could be some fauly detail</pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace"><br></pre><pre style="white-space:pre-wrap;color:rgb(8,8,8);font-size:12.8px;font-family:"jetbrains mono",monospace">/Kenneth </pre></div></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 9, 2021 at 6:52 PM Java House <<a href="mailto:java4dev@gmail.com" rel="noreferrer noreferrer" target="_blank">java4dev@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Roger thank you for replying.<div>I am having a series of 0s an1s in a List and want to convert it to a decimal number.</div><div>I am looking for something similar to BItSet in java</div><div><br></div><div>Kind Regards</div><div>Nikolas</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Στις Πέμ 9 Δεκ 2021 στις 3:24 μ.μ., ο/η Roger Lipscombe <<a href="mailto:roger@differentpla.net" rel="noreferrer noreferrer" target="_blank">roger@differentpla.net</a>> έγραψε:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, 9 Dec 2021 at 13:29, Java House <<a href="mailto:java4dev@gmail.com" rel="noreferrer noreferrer" target="_blank">java4dev@gmail.com</a>> wrote:<br>
> Thank you Roger for the answer<br>
> I thought about it but since I have to parse all digits for every row that would mean a lot of entries as I have to create all possible combinations of 0/1 for every position of the row.<br>
<br>
parse(Data) -> parse(Data, [], []).<br>
<br>
parse(<<"0", Rest/binary>>, Line, Lines) -><br>
    parse(Rest, [false | Line], Lines);<br>
parse(<<"1", Rest/binary>>, Line, Lines) -><br>
    parse(Rest, [true | Line], Lines);<br>
parse(<<$\n, Rest/binary>>, Line, Lines) -><br>
    parse(Rest, [], [lists:reverse(Line) | Lines]);<br>
parse(<<>>, [], Lines) -> lists:reverse(Lines);<br>
parse(<<>>, Line, Lines) -> lists:reverse([lists:reverse(Line) | Lines]).<br>
<br>
...results in...<br>
<br>
[[true,true,true,false,true,true,false,false,true,false,true,false],<br>
 [false,true,false,false,true,true,true,false,true,true,true,false],<br>
 [true,true,false,false,false,true,false,false,true,false,true,false],<br>
 [false,false,true,true,false,true,false,true,true,true,false,true],<br>
 [true,true,false,true,false,false,false,false,false,false,true,true],<br>
 [false,true,false,true,true,false,true,true,false,false,true,false]]<br>
</blockquote></div>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div>