____________ ..
___ ____________ 2009 .
8
1
230105
010503 .
2009
539.3
. : 8 1 230105 010503 . : , 2008. 12 .
.. ,
. .
( 6 13.02.09)
:
1.
2. , ,
: .
4 .
2. *
, , , , .. . , int 2 , . 16 ( Windows 4 ). : ( *,/, +, -, %), , .
. , .
:
~ (),
& "" (),
^ " " (),
| "" ().
.
op1 | op2 | ~op1 | op1 & op2 | op1 ^ op2 | op1 | op2 |
.
, | :
/* a = 00001001 = 9 */
|
|
char a, b; /* 00011010 = 26 */
a = 9; /* -------- */
b = a | 26 /* b = 31 */ /* b = 00011011 = 31 */
, & :
char a, b; /* a = 00101101 = 45 */
a = 45; /* 00001111 */
b = a & 0x0F; /* -------- */
/* b = 00001101 = 13 */
, ^ :
char a, b; /* a = 00101001 = 41 */
a = 41; /* 00001111 */
b = a ^ 0x0F; /* -------- */
/* b = 00100110 = 38 */
<< >>:
a << b a b ,
a >> b a b .
:
char a, b;
a = 26; /* a = 00011010 = 26 */
b = a << 2; /* b = 01101000 = 104 */
2 . - 2 .
. : ~, << >>, &, ^, |
1.
2.
3. ,
4.
1. (, , ) int (16 ) : 5 , 4 , 7 .
: 15 2008 -> 0001000 0011 01111
2. (, , ) int (16 ) : 6 , 6 , 4 0 12.
3. int (16 ) : ( 0 127) 7 , 1 , 1 , - 4 .
4. int (16 ) : 2 , 4 , 1 .
5. int (16 ) : 1 - , 10 , 1 , 4 .
: 7.87 ( 787*10-2) -> 0 1100010011 1 0010
: -5676500.45 ( -567*104) -> 1 1000110111 0 0100.
.
:
pw=floor(log10(fabs(val)))-2;
:
fpp = floor(val/pow10(pw));
6. int (16 ) : 4 , ( 33 48) 4 , / 1 , - 2 .
7. int (16 ) : (R12 - R19) 3 , ( 100) 7 , ( 40) 6 .
: 175/70 R13 001110 1001011 001 ( 175 , 70 ).
8. int (16 ) : 4 , 3 , 4 .
|
|
9. int (16 ) : 4 , 4 , 7 .
10. char (8 ) : 4 , 2 , / 1 , 1 .
11. . : , . . , .
12. . : , . . , .
13. . : 4- ( XOR), . . , .
14. . : 4- ( XOR), . . , .
15. . : , ( XOR). . , .
16. . : ; . . , .
17. . : 4- ( XOR), 3 . . , .
18. . : 4- ( XOR), . . , .
19. . : ( XOR), . . , .
20. . : , ( XOR). . , .
:
|
|
-
- 1-10:
× (, , ; , , ..)
× int,
× int
× - int
× (, , ; , , ..)
× int ;
- 11-20:
×
×
×
×
, , , , .
int : , 8 .
#include<conio.h>
#include<stdio.h>
int incode(unsigned int data)
{
unsigned int rez;
char tmp;
//
tmp = data&3;
//
rez = (data>>2)|(tmp<<14);
// 8
rez = rez^(0xFF);
return rez;
}
int decode(unsigned int data)
{
unsigned int rez;
char tmp;
// 8
rez = data^(0xFF);
//
tmp = (rez>>14)&3;
//
rez = (rez<<2)|tmp;
return rez;
}
void printBinary(unsigned int v)
{
int i;
for(i=sizeof(int)*8-1; i>=0; i--)
printf("%d", (v>>i)&1);
printf("\n");
}
void main(void)
{
unsigned int v_in, v_out;
clrscr();
printf(" ");
scanf("%u", &v_in);
v_out = incode(v_in);
printf(" %u\n", v_in);
printf(" : ");
printBinary(v_in);
printf(" %u\n", v_out);
printf(" : ");
printBinary(v_out);
printf(" %u\n", decode(v_out));
getch();
}
101
101
: 0000000001100101
16614
: 0100000011100110
101
1. 0?
2. 1?
3. 0 , ?
4. : (v>>5)&1? v&(1<<5)?
5. , (, (45^82)^82)?
6. (~) (!)?
7. ?
8. ?
9. , 18 (x|18)? , 18 ((x|18)|18)?
|
|
10. ?
1. .., .. ++. .: -, 2007. 288.
2. , . : [. .]/ . , . . .: -, 2002. 1168.
3. ., .. . .: , 2000. - 350 .
4. ., .. . - .: , 2001. - 380 .
5. . ., . .. /++. : . .: , 2007. 238 .
6. ... /++. . .: , 2006. 464 .
. : 8 1 230105 010503 .
..
..
..
2009., .295
. 60x84 1/16. .
. . . 0,7 | .-. . 0.7 | 30 . |
241035, . , . 50- , 7, . 58-82-49
, . , 9.