473,386 Members | 1,758 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

A C Question.

Hi:
There is question about C programming:
Use just one C statement to check whether a variable is the power of 2. No
loops allowed.
Waiting for your answer.I have not slept well a few days for this.
Jan 18 '06 #1
31 1801
Jack Young wrote:
Hi:
There is question about C programming:
Use just one C statement to check whether a variable is the power of 2. No
loops allowed.
Waiting for your answer.I have not slept well a few days for this.


int is_power_of_two(double x) {
return x > 0.0; /* one statement, no loops */
}

Sweet dreams!

--
Eric Sosman
es*****@acm-dot-org.invalid
Jan 18 '06 #2
if ( var % 2 == 0 ) {
printf("yep\n");
}

Jan 18 '06 #3
Jack Young wrote:
Hi:
There is question about C programming:
Use just one C statement to check whether a variable is the power of 2. No
loops allowed.
Waiting for your answer.I have not slept well a few days for this.


puts(x & (x-1) || x==0 ? "not a power of two" : "power of two");

Robert Gamble

Jan 18 '06 #4
PLEASE read how to properly post via Google Groups at
http://cfaj.freeshell.org/google/ before attempting to do so again.

jmazzi wrote:
if ( var % 2 == 0 ) {
printf("yep\n");
}


The OP asked how to determine if a variable was a *power* of two, not a
*multiple* of two.

Robert Gamble

Jan 18 '06 #5
my bad ;)

Jan 18 '06 #6
"jmazzi" <jm****@gmail.com> writes:
my bad ;)


Please read <http://cfaj.freeshell.org/google/>. Thanks.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Jan 18 '06 #7
Eric Sosman wrote:
Jack Young wrote:
There is question about C programming:
Use just one C statement to check whether a variable is the power of
2. No loops allowed.
Waiting for your answer.I have not slept well a few days for this.
int is_power_of_two(double x) {
return x > 0.0; /* one statement, no loops */
}


Floating point numbers (at least IEEE and similar ones) can be expressed
as a fraction whose denominator is a power of two. But that is not the
same thing as the number itself being a power of two. For instance,
3.0 is not a power of two.

- Logan
Jan 18 '06 #8
Logan Shaw <ls**********@austin.rr.com> writes:
Eric Sosman wrote:
Jack Young wrote:
There is question about C programming:
Use just one C statement to check whether a variable is the power
of 2. No loops allowed.
Waiting for your answer.I have not slept well a few days for
this.

int is_power_of_two(double x) {
return x > 0.0; /* one statement, no loops */
}


Floating point numbers (at least IEEE and similar ones) can be expressed
as a fraction whose denominator is a power of two. But that is not the
same thing as the number itself being a power of two. For instance,
3.0 is not a power of two.


Sure it is; the exponent is approximately 1.58496.

The OP is expecting us to do his homework for him without even
providing a precise statement of the problem.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Jan 18 '06 #9
Jack Young wrote:

Hi:
There is question about C programming:
Use just one C statement to check whether
a variable is the power of 2.
No loops allowed.
Waiting for your answer.I have not slept well a few days for this.


int n_is_Power_of_two(long unsigned n)
{
return (n & n - 1) == 0 && n != 0;
}

int n_is_Power_of_four(long unsigned n)
{
return (n & n - 1) == 0 && n % 3 == 1;
}

int n_is_Power_of_eight(long unsigned n)
{
return (n & n - 1) == 0 && n % 7 == 1;
}

--
pete
Jan 18 '06 #10
jat
modf(log(a)/log(2),&b)?0:1;

i have tried this on C++. I m not sure whether the functions are
available in C.
but the logic is that if we get a integer after taking the log of given
number with respect to 2(or any number), it is divisible.

n power x = y
x log(n) = log(y)
x = log(y)/log(n)

it may seem abstruse , but it's just another solution.

Jan 18 '06 #11
jat wrote:
modf(log(a)/log(2),&b)?0:1;

i have tried this on C++. I m not sure whether the functions are
available in C.
but the logic is that if we get a integer after taking the log of given
number with respect to 2(or any number), it is divisible.

n power x = y
x log(n) = log(y)
x = log(y)/log(n)

it may seem abstruse , but it's just another solution.

Imagine waiting for this to run on an 8 bit microcontroller!

--
Ian Collins.
Jan 18 '06 #12
"jat" <co**************@gmail.com> writes:
modf(log(a)/log(2),&b)?0:1;

i have tried this on C++. I m not sure whether the functions are
available in C.
but the logic is that if we get a integer after taking the log of given
number with respect to 2(or any number), it is divisible.

n power x = y
x log(n) = log(y)
x = log(y)/log(n)

it may seem abstruse , but it's just another solution.


Another solution to what? The question was about determing whether a
number is a power of two, but we can't necessarily see the article to
which you're replying. Please read <http://cfaj.freeshell.org/google/>.

The method may be mathematically valid, but since floating-point
numbers are inexact, it's likely to fail in many cases.

But since the original poster was probably asking us to do his
homework for him, giving him *correct* answers is a bad idea.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Jan 18 '06 #13
On 2006-01-18, Logan Shaw <ls**********@austin.rr.com> wrote:
Eric Sosman wrote:
Jack Young wrote:
There is question about C programming:
Use just one C statement to check whether a variable is the power of
2. No loops allowed.
Waiting for your answer.I have not slept well a few days for this.

int is_power_of_two(double x) {
return x > 0.0; /* one statement, no loops */
}


Floating point numbers (at least IEEE and similar ones) can be expressed
as a fraction whose denominator is a power of two. But that is not the
same thing as the number itself being a power of two. For instance,
3.0 is not a power of two.


Sure it is.

2^1.58496250072115618146

oh, you meant an integer power of two?
Jan 18 '06 #14
jmazzi wrote:
if ( var % 2 == 0 ) {
printf("yep\n");
}

Since when is 6 a power of 2?
If you're allowed to have real powers than 7 is a power of 2 and doesn't
satisfy your condition. Either way, you're either catching too many numbers
or not enough :-).
Shorter: an even number is not necessarily a power of 2.

--
Ioan - Ciprian Tandau
tandau _at_ freeshell _dot_ org (hope it's not too late)
(... and that it still works...)
Jan 18 '06 #15
On Tue, 17 Jan 2006 20:58:20 -0500, in comp.lang.c , Eric Sosman
<es*****@acm-dot-org.invalid> wrote:
Jack Young wrote:
Hi:
There is question about C programming:
Use just one C statement to check whether a variable is the power of 2. No
loops allowed.

Homework question...
int is_power_of_two(double x) {
return x > 0.0; /* one statement, no loops */
}


Cute. He probably meant an *integer* power? :-)

Mark McIntyre
--
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan

----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Jan 19 '06 #16

Jack Young wrote:
Hi:
There is question about C programming:
Use just one C statement to check whether a variable is the power of 2. No
loops allowed.
Waiting for your answer.I have not slept well a few days for this.

its very simple
see
any variable it is divided by 3,5,7 or 9 then it is not the power of 2
i.e,
main()
{
if (n%3 && n%5 && n%7 && n%9 != 0 )
printf("n is a power of 2");
}

Jan 19 '06 #17
ashu wrote:
Jack Young wrote:
Hi:
There is question about C programming:
Use just one C statement to check whether a variable is the power of 2. No
loops allowed.
Waiting for your answer.I have not slept well a few days for this. its very simple
see
any variable it is divided by 3,5,7 or 9 then it is not the power of 2


By definition, a number that is a power of 2 has no prime factors other
than 2, your observation is an incomplete obfuscation of this fact.
Also, just so you know, any number evenly divisible by 9 is also evenly
divisible by 3 so the last part of your assertion is superfluous.
i.e,
main()
{
if (n%3 && n%5 && n%7 && n%9 != 0 )
printf("n is a power of 2");
}


Your example has numerious errors, both programatic and logical.
First, let's cover the programatic errors:
1. main returns an int so "int main (void)" would be a correct
declaration here.
2. You never define "n", let alone initialize it.
3. You need to #include <stdio.h> to use printf and you should have a
newline at the end of your string to be portable.
4. You should return an integer value from main.

It is true that any number evenly divisible by 3, 5, 7, or 9 is not a
power of 2, but to say that any number that does is not evenly
divisible by these numbers is a power of 2 is a non sequitur, by your
criteria 1, 11, 13, and would each be a power of 2.

Robert Gamble

Jan 19 '06 #18
Robert Gamble said:
It is true that any number evenly divisible by 3, 5, 7, or 9 is not a
power of 2, but to say that any number that does is not evenly
divisible by these numbers is a power of 2 is a non sequitur,
No, it isn't. It's a false conclusion, not a non sequitur.
by your criteria 1, 11, 13, and would each be a power of 2.


1 *is* a power of 2! It is 2 to the power 0.

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at above domain (but drop the www, obviously)
Jan 19 '06 #19
Richard Heathfield wrote:
Robert Gamble said:
It is true that any number evenly divisible by 3, 5, 7, or 9 is not a
power of 2, but to say that any number that does is not evenly
divisible by these numbers is a power of 2 is a non sequitur,


No, it isn't. It's a false conclusion, not a non sequitur.


It's a prime example of a non sequitur; Given: if A (number is
divisible by 3,5,7,9) then B (not a power of 2), then it does not
logically follow that NOT A (not divisible by 3,5,7,9) yields NOT B (is
a power of two). The type of this example is more specifically
referred to as Denying the Antecedent.
by your criteria 1, 11, 13, and would each be a power of 2.


1 *is* a power of 2! It is 2 to the power 0.


Okay, I screwed that up. That should have read either "11, 13, and 17
would each" or "11 and 13 would both".

Robert Gamble

Jan 19 '06 #20
Robert Gamble wrote:

ashu wrote:
Jack Young wrote:
Hi:
There is question about C programming:
Use just one C statement to check whether a variable is the power of 2. No
loops allowed.
Waiting for your answer.I have not slept well a few days for this.

its very simple
see
any variable it is divided by 3,5,7 or 9 then it is not the power of 2


By definition, a number that is a power of 2 has no prime factors other
than 2, your observation is an incomplete obfuscation of this fact.
Also, just so you know, any number evenly divisible by 9 is also evenly
divisible by 3 so the last part of your assertion is superfluous.
i.e,
main()
{
if (n%3 && n%5 && n%7 && n%9 != 0 )
printf("n is a power of 2");
}


Your example has numerious errors, both programatic and logical.
First, let's cover the programatic errors:
1. main returns an int so "int main (void)" would be a correct
declaration here.
2. You never define "n", let alone initialize it.
3. You need to #include <stdio.h> to use printf and you should have a
newline at the end of your string to be portable.
4. You should return an integer value from main.


And this expression
(n%3 && n%5 && n%7 && n%9 != 0 )
is written strangely.

Either
(n%3 && n%5 && n%7 && n%9)
or
(n%3 != 0 && n%5 != 0 && n%7 != 0 && n%9 != 0 )
would be better.

--
pete
Jan 19 '06 #21
In article <11**********************@o13g2000cwo.googlegroups .com> "ashu" <ri*********@yahoo.com> writes:
....
any variable it is divided by 3,5,7 or 9 then it is not the power of 2
i.e,
main()
{
if (n%3 && n%5 && n%7 && n%9 != 0 )
printf("n is a power of 2");
}


Ah, yes, 316 is a power of 2.
--
dik t. winter, cwi, kruislaan 413, 1098 sj amsterdam, nederland, +31205924131
home: bovenover 215, 1025 jn amsterdam, nederland; http://www.cwi.nl/~dik/
Jan 19 '06 #22
Robert Gamble wrote:
Richard Heathfield wrote:
Robert Gamble said:

It is true that any number evenly divisible by 3, 5, 7, or 9 is not a
power of 2, but to say that any number that does is not evenly
divisible by these numbers is a power of 2 is a non sequitur,


No, it isn't. It's a false conclusion, not a non sequitur.

It's a prime example of a non sequitur; Given: if A (number is
divisible by 3,5,7,9) then B (not a power of 2), then it does not
logically follow that NOT A (not divisible by 3,5,7,9) yields NOT B (is
a power of two). The type of this example is more specifically
referred to as Denying the Antecedent.

by your criteria 1, 11, 13, and would each be a power of 2.


1 *is* a power of 2! It is 2 to the power 0.

Okay, I screwed that up. That should have read either "11, 13, and 17
would each" or "11 and 13 would both".

Robert Gamble

Powers of 2

#include <stdio.h>

int main(void) {
int i, j, k = 0;
for (i = 1; i < 20; ++i) {
j = i & (i - 1);
if (j) printf("%2d\n", i);
else printf("%2d is 2 to the power %d\n", i, k++);
}
return 0;
}

--
Joe Wright
"Everything should be made as simple as possible, but not simpler."
--- Albert Einstein ---
Jan 19 '06 #23
pete <pf*****@mindspring.com> writes:
[...]
And this expression
(n%3 && n%5 && n%7 && n%9 != 0 )
is written strangely.

Either
(n%3 && n%5 && n%7 && n%9)
or
(n%3 != 0 && n%5 != 0 && n%7 != 0 && n%9 != 0 )
would be better.


In the context of doing someone's homework for him (which is how this
thread started), the original version is perfect.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Jan 20 '06 #24
Keith Thompson wrote:

pete <pf*****@mindspring.com> writes:
[...]
And this expression
(n%3 && n%5 && n%7 && n%9 != 0 )
is written strangely.

Either
(n%3 && n%5 && n%7 && n%9)
or
(n%3 != 0 && n%5 != 0 && n%7 != 0 && n%9 != 0 )
would be better.


In the context of doing someone's homework for him (which is how this
thread started), the original version is perfect.


The last time that I posted a solution to this problem,
I got it wrong, so I'm glad that someone corrected me.

http://groups.google.com/group/comp....fbaccbea6ca776

--
pete
Jan 20 '06 #25
Joe Wright wrote:
.... snip ...
#include <stdio.h>

int main(void) {
int i, j, k = 0;
for (i = 1; i < 20; ++i) {
j = i & (i - 1);
if (j) printf("%2d\n", i);
else printf("%2d is 2 to the power %d\n", i, k++);
}
return 0;
}


Funny thing. It seems that all values than 20 are powers of two on
my 1's complement machine. Where, oh where, did they come from?

--
"If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers." - Keith Thompson
More details at: <http://cfaj.freeshell.org/google/>
Jan 20 '06 #26
CBFalconer wrote:
Joe Wright wrote:
#include <stdio.h>

int main(void) {
int i, j, k = 0;
for (i = 1; i < 20; ++i) {
j = i & (i - 1);
if (j) printf("%2d\n", i);
else printf("%2d is 2 to the power %d\n", i, k++);
}
return 0;
}


Funny thing. It seems that all values than 20 are powers of two on
my 1's complement machine. Where, oh where, did they come from?


Your imagination?! ;-)

--
Peter

Jan 20 '06 #27
Peter Nilsson wrote:

CBFalconer wrote:
Joe Wright wrote:
#include <stdio.h>

int main(void) {
int i, j, k = 0;
for (i = 1; i < 20; ++i) {
j = i & (i - 1);
if (j) printf("%2d\n", i);
else printf("%2d is 2 to the power %d\n", i, k++);
}
return 0;
}


Funny thing. It seems that all values than 20 are powers of two on
my 1's complement machine. Where, oh where, did they come from?


Your imagination?! ;-)


"1's complement" as far as I know,
refers to the representation of negative integers,
so I don't see what CBFalconer is getting at.

--
pete
Jan 20 '06 #28
pete wrote:
Peter Nilsson wrote:
CBFalconer wrote:
Joe Wright wrote: #include <stdio.h>

int main(void) {
int i, j, k = 0;
for (i = 1; i < 20; ++i) {
j = i & (i - 1);
if (j) printf("%2d\n", i);
else printf("%2d is 2 to the power %d\n", i, k++);
}
return 0;
}

Funny thing. It seems that all values than 20 are powers of two on
my 1's complement machine. Where, oh where, did they come from?


Your imagination?! ;-)


"1's complement" as far as I know, refers to the representation of
negative integers, so I don't see what CBFalconer is getting at.


Peter Nilsson (and Joe) has it right. I went off less than
half-cocked. I was thinking of the effect of ((v) & (-v)).

--
"If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers." - Keith Thompson
More details at: <http://cfaj.freeshell.org/google/>
Jan 20 '06 #29

In article <11**********************@g14g2000cwa.googlegroups .com>, "Robert Gamble" <rg*******@gmail.com> writes:
Richard Heathfield wrote:
Robert Gamble said:
It is true that any number evenly divisible by 3, 5, 7, or 9 is not a
power of 2, but to say that any number that does is not evenly
divisible by these numbers is a power of 2 is a non sequitur,


No, it isn't. It's a false conclusion, not a non sequitur.


It's a prime example of a non sequitur; Given: if A (number is
divisible by 3,5,7,9) then B (not a power of 2), then it does not
logically follow that NOT A (not divisible by 3,5,7,9) yields NOT B (is
a power of two). The type of this example is more specifically
referred to as Denying the Antecedent.


Do you have a reference for this definition of non sequitur? I've
never seen it used to include errors of logic, and eg Lanham's _A
Handlist of Rhetorical Terms_ doesn't endorse that usage.

"non sequitur" of course literally means "it does not follow", so
it could be construed very broadly to include errors of logic (where
conclusions do not follow, in the logical sense, from propositions),
but I've only ever seen it applied to cases where a conclusion is
drawn from irrelevant arguments, and Lanham appears to agree.

--
Michael Wojcik mi************@microfocus.com

See who I'm! -- Jackie Chan and unknown subtitler, _Dragons Forever_
Jan 20 '06 #30
Michael Wojcik wrote:
In article <11**********************@g14g2000cwa.googlegroups .com>, "Robert Gamble" <rg*******@gmail.com> writes:
Richard Heathfield wrote:
Robert Gamble said:
> It is true that any number evenly divisible by 3, 5, 7, or 9 is not a
> power of 2, but to say that any number that does is not evenly
> divisible by these numbers is a power of 2 is a non sequitur,

No, it isn't. It's a false conclusion, not a non sequitur.


It's a prime example of a non sequitur; Given: if A (number is
divisible by 3,5,7,9) then B (not a power of 2), then it does not
logically follow that NOT A (not divisible by 3,5,7,9) yields NOT B (is
a power of two). The type of this example is more specifically
referred to as Denying the Antecedent.


Do you have a reference for this definition of non sequitur? I've
never seen it used to include errors of logic, and eg Lanham's _A
Handlist of Rhetorical Terms_ doesn't endorse that usage.

"non sequitur" of course literally means "it does not follow", so
it could be construed very broadly to include errors of logic (where
conclusions do not follow, in the logical sense, from propositions),
but I've only ever seen it applied to cases where a conclusion is
drawn from irrelevant arguments, and Lanham appears to agree.


Wikipedia has a description that is in tune with my understanding of
the term:
http://en.wikipedia.org/wiki/Non_sequitur_%28logic%29
There may well be a general usage of the word as well as the one
related to logical analysis, I am familiar only with the latter.

Robert Gamble

Jan 20 '06 #31
Hi,
This can be one of the possible solutions

if(!(num & (num - 1)) && num)
{
// Power of 2!
}

Shastri

Jan 21 '06 #32

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Mohammed Mazid | last post by:
Can anyone please help me on how to move to the next and previous question? Here is a snippet of my code: Private Sub cmdNext_Click() End Sub Private Sub cmdPrevious_Click() showrecord
3
by: Stevey | last post by:
I have the following XML file... <?xml version="1.0"?> <animals> <animal> <name>Tiger</name> <questions> <question index="0">true</question> <question index="1">true</question> </questions>
7
by: nospam | last post by:
Ok, 3rd or is it the 4th time I have asked this question on Partial Types, so, since it seems to me that Partial Types is still in the design or development stages at Microsoft, I am going to ask...
3
by: Ekqvist Marko | last post by:
Hi, I have one Access database table including questions and answers. Now I need to give answer id automatically to questionID column. But I don't know how it is best (fastest) to do? table...
10
by: glenn | last post by:
I am use to programming in php and the way session and post vars are past from fields on one page through to the post page automatically where I can get to their values easily to write to a...
10
by: Rider | last post by:
Hi, simple(?) question about asp.net configuration.. I've installed ASP.NET 2.0 QuickStart Sample successfully. But, When I'm first start application the follow message shown. ========= Server...
53
by: Jeff | last post by:
In the function below, can size ever be 0 (zero)? char *clc_strdup(const char * CLC_RESTRICT s) { size_t size; char *p; clc_assert_not_null(clc_strdup, s); size = strlen(s) + 1;
56
by: spibou | last post by:
In the statement "a *= expression" is expression assumed to be parenthesized ? For example if I write "a *= b+c" is this the same as "a = a * (b+c)" or "a = a * b+c" ?
2
by: Allan Ebdrup | last post by:
Hi, I'm trying to render a Matrix question in my ASP.Net 2.0 page, A matrix question is a question where you have several options that can all be rated according to several possible ratings (from...
3
by: Zhang Weiwu | last post by:
Hello! I wrote this: ..required-question p:after { content: "*"; } Corresponding HTML: <div class="required-question"><p>Question Text</p><input /></div> <div...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.