Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > bits required

Reply
Thread Tools

bits required

 
 
rajm2019@gmail.com
Guest
Posts: n/a
 
      05-26-2007
count the bits required to be altered while swaping values a and b

 
Reply With Quote
 
 
 
 
Richard Heathfield
Guest
Posts: n/a
 
      05-26-2007
http://www.velocityreviews.com/forums/(E-Mail Removed) said:

> count the bits required to be altered while swaping values a and b


Why?

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
 
Reply With Quote
 
 
 
 
Default User
Guest
Posts: n/a
 
      05-26-2007
(E-Mail Removed) wrote:

> count the bits required to be altered while swaping values a and b



You can repost it all you want, we still won't do your homework for
you.

Back in the day, when I was a teaching assistant (Physics), I used to
tell the students, "It's pointless to cheat on homework. Homework is
for you. We only collect and grade it so you'll get feedback on what
you're doing wrong and to give you incentive to actually do the work.
Exams are where we find out what you really know."




Brian
 
Reply With Quote
 
Walter Roberson
Guest
Posts: n/a
 
      05-26-2007
In article <(E-Mail Removed) .com>,
<(E-Mail Removed)> wrote:

>count the bits required to be altered while swaping values a and b


The answer may be ill-defined. If a temporary value is used,
the the number of bits required to be altered to set that
temporary to a certain value would depend on what was in
the temporary to start with, which is unknown if the temporary
is in automatic storage.

There is also the question of how to count the alteration of bits.
If a particular bit gets altered twice, then is that a count of 2
(two alterations), or a count of 1 (one bit altered) ?

Is the requirement to come up with a formula that expresses the
number of bits required to be altered to swap two values? Or is
the requirement to come up with a program that would count the
bits required to be altered to swap two values that are inputs?
Or are the two values given ahead of time?

What do we know about the types of the two values a and b?
Are they integral types? Are they potentially floating point
numbers? Are they potentially of mixed type, one integral
and one floating point?

What are we to do about the problem that "bits" are a matter
of representation (which is not completely defined in C),
whereas "values" are independant of representation? For example,
the answer might be different if the C implementation happens
to be using two's complement to represent values when the programmer
is expecting one's complement representation instead.
--
Programming is what happens while you're busy making other plans.
 
Reply With Quote
 
Barry Schwarz
Guest
Posts: n/a
 
      05-26-2007
On 26 May 2007 09:11:23 -0700, (E-Mail Removed) wrote:

>count the bits required to be altered while swaping values a and b


Posting the same question every hour will not get you more or faster
responses. However, it will increase the number of killfiles that
contain you name.

Posting an obvious homework question while making no attempt to solve
it yourself merely hastens the process.


Remove del for email
 
Reply With Quote
 
Flash Gordon
Guest
Posts: n/a
 
      05-26-2007
(E-Mail Removed) wrote:
> count the bits required to be altered while swaping values a and b


42.7
--
Flash Gordon
 
Reply With Quote
 
Richard Heathfield
Guest
Posts: n/a
 
      05-26-2007
Barry Schwarz said:

> On 26 May 2007 09:11:23 -0700, (E-Mail Removed) wrote:
>
>>count the bits required to be altered while swaping values a and b

>
> Posting the same question every hour will not get you more or faster
> responses. However, it will increase the number of killfiles that
> contain you name.


Indeed. In fact, from over here it's already too late.

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
 
Reply With Quote
 
Keith Thompson
Guest
Posts: n/a
 
      05-26-2007
(E-Mail Removed) writes:
> count the bits required to be altered while swaping values a and b


Give us your instructor's e-mail address so we can submit the solution
directly.

Optionally, you can also give us your name so we can tell your
instructor who should get the "credit".

Or you might just consider doing your own homework.

--
Keith Thompson (The_Other_Keith) (E-Mail Removed) <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."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
 
Reply With Quote
 
pete
Guest
Posts: n/a
 
      05-26-2007
(E-Mail Removed) wrote:
>
> count the bits required to be altered while swaping values a and b


/* BEGIN new.c */

#include <stdio.h>
#include <stdlib.h>

unsigned bit_count(unsigned n);

int main(void)
{
unsigned a, b, mask;

a = rand();
b = rand();
mask = a ^ b;
printf("a is %u\nb is %u.\n", a, b);
printf("%u bits would need to be flipped in each object\n"
"to swap their values.\n", bit_count(mask));
printf("%u ^ %u is %u\n", a, mask, a ^ mask);
printf("%u ^ %u is %u\n", b, mask, b ^ mask);
return 0;
}

unsigned bit_count(unsigned n)
{
unsigned count;

for (count = 0; n != 0; n &= n - 1) {
++count;
}
return count;
}

/* END new.c */

--
pete
 
Reply With Quote
 
Shraddha
Guest
Posts: n/a
 
      05-27-2007
On May 27, 3:52 am, pete <(E-Mail Removed)> wrote:
> (E-Mail Removed) wrote:
>
> > count the bits required to be altered while swaping values a and b

>
> /* BEGIN new.c */
>
> #include <stdio.h>
> #include <stdlib.h>
>
> unsigned bit_count(unsigned n);
>
> int main(void)
> {
> unsigned a, b, mask;
>
> a = rand();
> b = rand();
> mask = a ^ b;
> printf("a is %u\nb is %u.\n", a, b);
> printf("%u bits would need to be flipped in each object\n"
> "to swap their values.\n", bit_count(mask));
> printf("%u ^ %u is %u\n", a, mask, a ^ mask);
> printf("%u ^ %u is %u\n", b, mask, b ^ mask);
> return 0;
>
> }
>
> unsigned bit_count(unsigned n)
> {
> unsigned count;
>
> for (count = 0; n != 0; n &= n - 1) {
> ++count;
> }
> return count;
>
> }
>
> /* END new.c */
>
> --
> pete


Why you are using unsigned int everywhere?Why count is unsigned?And
why you XOR the inputs?

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
shifting bits, shift 32 bits on 32 bit int GGG C++ 10 07-06-2006 06:09 AM
what about unsigned and signed 8 bits number, 16 bits, etc?? sarmin kho Python 2 06-15-2004 06:40 PM
8 bits/ch vs 16 bits/ch in PS Terry Digital Photography 5 01-21-2004 06:59 PM
8-Bits vs 12 or 16 bits/pixel; When does more than 8 bits count ? Al Dykes Digital Photography 3 12-29-2003 07:08 PM
win XP 32 bits on a 64 bits processor.. Abbyss Computer Support 3 11-13-2003 12:39 AM



Advertisments