home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR2
/
DVPG30FS.ZIP
/
G.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-11-17
|
1KB
|
68 lines
#include <stdio.h>
int temp1, temp2, temp3, outp;
int forward(int row, int max)
{
temp1 = max >> 1;
temp2 = max >> 2;
temp3 = max >> 3;
if (row < temp3)
outp = row << 3;
else
if (row < temp2)
outp = ((row - temp3) << 3) + 4;
else
if (row < temp1)
outp = ((row - temp2) << 2) + 2;
else
outp = ((row - temp1) << 1) + 1;
return outp;
}
int reverse(int row, int max)
{
int i;
temp1 = max >> 1;
temp2 = max >> 2;
temp3 = max >> 3;
for (i=0; i < max; i++){
if (i < temp3)
outp = i << 3;
else
if (i < temp2)
outp = ((i - temp3) << 3) + 4;
else
if (i < temp1)
outp = ((i - temp2) << 2) + 2;
else
outp = ((i - temp1) << 1) + 1;
if (outp == row) return i;
}
return -99;
return row; /* fall thru and do nothing if we get here */
}
int main(int argc, char *argv[])
{
int i, size, j;
if (argc < 2) return(0);
sscanf(argv[1],"%i", &size);
for (i=0; i < size; i++){
j = forward(i, size);
printf("%i, for: %i, rev: %i\n", i, j, reverse(j, size));
}
return 1;
}