Hewlett Packard Interview Question
Software Engineer / DevelopersTeam: Networking
Country: United States
Interview Type: In-Person
This code snippet appears long as it prints out the original and modified bit streams.
#include <stdio.h>
#include <stdlib.h>
#define BITBYTES 8
int main(void)
{
int start_bit = 5, num_of_bits = 15, mynum, j;
int mask = 01, mask1 = 01, new_mask = 0, i = 0;
printf("Enter number you wish to flip bits for:\t");
scanf("%d",&mynum);
printf("\n");
printf("Printing bits in number enetered as input\n");
for (j = (BITBYTES*sizeof(int)-1); j >= 0; j--) {
if (mynum & (mask<<j))
putchar('1');
else
putchar('0');
}
printf("\n");
printf("Modified mask stream is shown below:\n");
for (j = start_bit; j < ((num_of_bits - start_bit) + start_bit); j++)
new_mask ^= (mask1 << j);
printf("%d\n",new_mask);
for (j = (BITBYTES*sizeof(int)-1); j >= 0; j--) {
if ((mynum & (mask << j))^(new_mask & (mask << j)))
putchar('1');
else
putchar('0');
}
mynum ^= new_mask;
printf("\nThe modified number is: %d\n",mynum);
system("pause");
}
#include<stdio.h>
int main()
{
int a[50],start,no_of_pos,i,n;
printf("enter length of number");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("string is:");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("enter starting position and length of number u want to toggle");
scanf("%d%d",&start,&no_of_pos);
for(i=n-start;i>=n-(start+no_of_pos);i--)
{
if(a[i]==1)
a[i]=0;
else
a[i]=1;
}
printf("new string is:");
for(i=0;i<n;i++)
printf("%d",a[i]);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int data, start, number, power, sum=0;
printf("enter any data");
scanf("%d", &data);
printf("you entered is\n");
convertD2B(data);
printf("enter the start bit and number of bits");
scanf("%d %d", &start, &number);
for(power=start; power<start+number; power++)
{
sum=sum+pow(2, power);
}
data=data^sum;
printf("\nthe modified data is \n");
convertD2B(data);
return 0;
}
void convertD2B(int n)
{
int c, k;
for (c = 31; c >= 0; c--)
{
k = n >> c;
if (k & 1)
printf("1");
else
printf("0");
}
printf("\n");
}
#include <stdio.h>
- aka[1] October 17, 2015#define toggle(a, b, c) \
a^(((1<<b)-1)<<c)
int main(void) {
int a=34;
a = toggle(a, 4, 3);
printf("%x", a);
return 0;
}