Solution for Exercise 17-11
ex1711
#include <stdio.h>
char *binbin(unsigned n);
int main()
{
unsigned bshift,x;
printf("Type a value 0 to 255: ");
scanf("%u",&bshift);
for(x=0;x<8;x++)
{
printf("%s %d\n",binbin(bshift),bshift);
bshift <<= 1;
}
return(0);
}
char *binbin(unsigned n)
{
static char bin[17];
int x;
for(x=0;x<16;x++)
{
bin[x] = n & 0x8000 ? '1' : '0';
n <<= 1;
}
bin[x] = '\0';
return(bin);
}
Output
Type a value 0 to 255: 12
0000000000001100 12
0000000000011000 24
0000000000110000 48
0000000001100000 96
0000000011000000 192
0000000110000000 384
0000001100000000 768
0000011000000000 1536
Notes
* I used an assignment operator at Line 15: <<=. Any time you see an expression like:
bshift = bshift << 1;
Consider using an assignment operator instead.
Copyright © 1997-2026 by QPBC.
All rights reserved
