1
edit
Changes
fixed some of tab spaces in my notes
platform(name , option);
this line will call the function.</p>
==decimal to binary with bitwise operators==
<p> here's a example of dec to binary using bitwise operator</p>
<pre>
#include <stdio.h>
void binary(int v, int mask){
for(mask;mask>0;mask = mask >>1){
printf(“%d”,!!(v & mask)); /*prints 1 or 0, since bitwise operator “&” means: 1 & 1= 1 anything else =0.*/
}
}
int main(){
int a;
int m;
printf(“number:”);
scanf(“%d”,&a);
m=a>32? 1024:32;
binary(a,m);
printf(“\n”);
return 0;
}
</pre>
<p>
the Mask:
The length of the mask can be determine by an simple intger for example
30= 100000
64 =1000000
1024= 10000000000
</p>
<p>
The number:
the number is an plain integer number. But when used with an bitwise operator it become a binary number such as:
1 & mask
1= 000001
mask= 100000
Therefore in the loop shifts the mask right 1 to determine if the position contains 1 or 0. If zero output prints zero else one.
</p>
==set and unset bits==
<p>
While I was studying for the OOP344 test, I created a small program that demonstrates how to set a bit or unset a bit. For example if the number is 1 and the binary is 000001. Therefore if I choose to set the bit 2 the binary will become 000011 and the number will become 3. However if I choose to unset 1 the binary will become 000010. Thus a set and unset bit function has been created. </p>
<pre>
#include <stdio.h>
#define mask 32
void printdata(int v, int m){
for(m;m>0;m = m >>1){
printf("%d",!!(v & m));
}
printf("\n");
}
/*set bit to one or zero and output the binary*/
void set(int* v, int num){
*v=((*v)^num); /*0^0=0 and 1^0=1* therefore the operator will set the bit to 1 or 0*/
printdata(*v,mask);
}
int main(){
int a;
int m;
do{
printf(" enter number(number>32 to quit):\n");
scanf("%d",&a);
if(a<32){
printdata(a,mask);
printf("the current number is: %d\n",a);
printf("set bit:\n");
scanf("%d",&m);
set(&a,m);
printf("The new number: %d\n", a);
printf("unset bit:\n");
scanf("%d",&m);
set(&a,m);
printf("The new Number: %d\n", a);
}
}while(a<32);
}
</pre>