Wednesday, July 23, 2008

Given a 7 bit variable, convert into a 8 bit variable with ODD parity

Calculate ODD parity - excellent method

Here is a simple code example for 8 bit number, you can easily extend it to any bits you want. int


Oddparity(unsigned char p)

{

       p = p ^ (p > > 4);

       p = p ^ (p > > 2);

       p = p ^ (p > > 1);

       return p & 1;

}


>>> 

Rajini

>>> 

#include<stdio.h>

typedef char BYTE;

 

BYTE fnGetParity(BYTE bByte,BYTE bXor);

 

void main()

{

  BYTE bVal;

 

 scanf("%x",&bVal);

 

 BYTE bParity = fnGetParity(bVal,0);//fnGetParity(bVal,0);

 

 bVal = (bVal<<1)| (!bParity);

 

 printf("0x%x",bVal);

 

}

 

BYTE fnGetParity(BYTE bByte,BYTE bXor)

{

 

 if(bByte)

  fnGetParity(bByte>>1,(bByte&0x1) ^ bXor);

 else

   return bXor;

 

}

 

>>> 

Code found somewhere

>>> 

#define XYZ(data, shift)             (((data) >> (shift)) ^ (data))

 

void main ()

{

            int x = 0x11;

            printf("%x \n",(((XYZ(XYZ(XYZ(XYZ(x,8),4),2),1))&1)==0)?(x<<1)^1:x<<1);

 

}

>>>>> 

Manohar

>>>>> 

(Var>>1) | ~((var&1) ^ (var&2) ^ (var&4) ^ (var&8) ^ (var&16) ^ (var&32) ^ (var&64))

 

But this would be a hardcoded way!

 

>>>>> 

Murali

>>>>> 

#include <stdio.h>

#include <math.h>

void main()

{

     int c=0,i=0,a;

     printf("Enter value in decimal form (less than 127):");

     scanf("%x",&a);

 

     for(i=0;i<7;i++)

     {

          if((int(pow(2,i)) & a) !=0) 

          c=c+1;

          else

          c=c;

     }   

     a=a<<1;

     if (c%2==0 && c!=1)

     a=a+1; 

     printf("Encrypted Value with Odd Parity is %x\n",a);

}

 

>>> 

KIRAN

>>> 

#include<stdio.h>

void main()

{

 int s,c,n;

 printf("Enter a number lessthan 128\n");

 scanf("%x",&s);

 c=0;

 

 for(n=0;n<=6;n++)

  if(s>>n&1)

   c=c+1;

 

 c%2?n= (s|0<<8)<<1:n= ((s|0<<8)<<1)|1;

      

 printf("%x\n",n);

 

}

>>> 

VIDYASAGAR

>>> 

int main()

{

      int i;
      int a ,bit = 0,count = 0;
  
   printf("enter a number in hexa \n");
   scanf("%x",&a);

 

      for(i=0;i<6;i++)

      {
            bit = ((a>>i)&1);
               if(bit==1)
               {
                    count++;
                    bit = 0;
              } 

      }

   a = a<<1;
 
  if((count%2) == 0)//even parity
  {
   a= (a|1);
  }
   printf("%x\n",a);// our answer prints here

 

   return 0;

 

}//end of main

>>>> 

SADA

>>>> 

#include <stdio.h>

void main()
{
 int x,count=0;
 unsigned int a;

 printf("Enter the number: \n");

 scanf("%d",&a);
  
 for(x=0;x<=7;x++)
  
  (a&(0000001<<x))?count++:0 ;


 (float(count%2)==0)?(a=(a<<1)|00000001):(a=(a<<1)|00000000);

 

 printf("%d",a);

 

}

 

>>>> 

BHIMSEN

>>>> 

void main()

{

            int a = 0x55, r=1, od, i;

 

            for(i=0;i<7;i++)

                        r = ((a>>i)&1)^r;

 

            od = (a<<1)|r;

            printf("%x \n",od);

}

 

 

 Given a 7 bit variable, convert into a 8 bit variable with ODD parity

 

Example, if user inputs 0x11 then output shall be 0x23

                                  0x10 then output shall be 0x22

 

I am looking for most efficient program or MACRO



--
At a certain point there is no difference between Magic and Science.
-Bhimsen Joshi

4 comments:

machy said...

NAME:
ADDRESS:
AMOUNT WON:
COUNTRY:
PHONE
NUMBER:
AGE:
SEX:
OCCUPATION:NAME:
ADDRESS:
AMOUNT WON:
COUNTRY:
PHONE
NUMBER:
AGE:
SEX:
OCCUPATION:NAME:
ADDRESS:
AMOUNT WON:
COUNTRY:
PHONE
NUMBER:
AGE:
SEX:
OCCUPATION: Beta version

machy said...

Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version Beta version

machy said...

Post a Comment On: THOUGHTS...
"Given a 7 bit variable, convert into a 8 bit variable with ODD parity"Ticking Man Space Daytona Thrash N’ Burn Skateboarding Downhill Race
Ticking Man Space Daytona Thrash N’ Burn Skateboarding Downhill Race

machy said...

aditya_nainital_19