- •Int strcmp(char* string1, char* string2)
- •Int strncmp(char* string1, char* string2, unsigned int n)
- •Int strspn(char* string1, char* string2)
- •Int strcspn(char* string1, char* string2)
- •Int Func( int * Array, int Dim1, int Dim2, ...).
- •Int pow2plus1(int X)
- •Int CicleMoveBitsLeft(int X, int n);
- •Int CicleMoveBitsRight(int X, int n);
- •Int ChangeGroupBits(int X, int y, int n1, int n2);
- •Int MoveGroupBits(int X, int y, int n1, int n2);
- •Int ReverseTetrads(int X);
- •Int xLeft, yTop, xRight, yBottom;
- •Void push_back(t &value);
Int pow2plus1(int X)
{
return (1 << x) + 1;
}
-------------------------------
pow2plus4 - возвращает 2^x + 4, где 0 <= x <= 15 (или 31)
int pow2plus4(int x)
{
int result = 1 << x;
result+=4;
return result;
}
-------------------------------
conditional - выполняет то же, что и операция x ? y : z
int conditional(int x, int y, int z)
{
int r1=!!x, r2;
r1=(r1<<15)>>15;
r2=~r1;
return (y&r1)|(z&r2);
}
********************************************************
№ 1
int bitAnd(int x, int y);
bitAnd – возвращает x&y
Пример: bitAnd(6, 5) = 4
Допустимые операции: ~ |
Подсказка: использовать закон Де Моргана
№ 2
int nthBit(int x, int n);
nthBit – возвращает значение n-го бита x; нумерация бит начинается с 0
Нумерация бит начинается с 0
Пример: nthBit(4, 0) = 0, nthBit(4, 2) = 1
№ 3
int SetFirstNBits(int n);
SetFirstNBits - возвращает максимальное число, задаваемое n битами
Пример: SetFirstNBits(3) = 7, SetFirstNBits(0) = 0
№ 4
int FromNtoMBits(int x, int n, int m);
fromNtoMBits - возвращает число, составленное из бит от n до m;
Нумерация бит начинается с 0
Пример: FromNtoMBits(4, 2, 4) = 1, FromNtoMBits(12, 2, 4) = 3
№5
int bitXor(int x, int y);
bitXor возвращает x^y (исключающее или)
Пример: bitXor(4, 5) = 1
Допустимые операции: ~ & |
№ 6
int MoveLeftWithAdd (int x, int y, int n);
ChangeGroupBits(int x, int y, int n1, int n2) –возвращает х, содержимое которого сдвинуто влево на n разрядов, а освободившиеся разряды заполнены старшими разрядами y.
MoveLeftWithAdd(0x1234,0x5678,8) = 3456
№ 7
int getByte(long x, int n);
getByte - возвращает n-ый байт из x
Байты нумеруются on 0 до 3
Пример: getByte(0x12345678,1) = 0x56
№ 8
int logicalShift(int x, int n) ;
logicalShift - возвращает x, сдвинутое вправо на n разрядов
Пример: logicalShift(0x87654321,4) = 0x08765432
№ 9
int MoveRightWithAdd (int x, int y, int n);
ChangeGroupBits(int x, int y, int n1, int n2) –возвращает х, содержимое которого сдвинуто вправо на n разрядов, а освободившиеся разряды заполнены старшими разрядами y.
MoveRightWithAdd(0x1234,0xABCD,8) = AB12
№10
int MoveRightWithAdd (int x, int y, int n);
ChangeGroupBits(int x, int y, int n1, int n2) –возвращает х, содержимое которого сдвинуто вправо на n разрядов, а освободившиеся разряды заполнены инвертированными младшими разрядами y.
MoveRightWithAdd(0x1234,0xABCD,8) = 3212
№11
int MoveLeftWithAdd (int x, int y, int n);
ChangeGroupBits(int x, int y, int n1, int n2) –возвращает х, содержимое которого сдвинуто влево на n разрядов, а освободившиеся разряды заполнены инвертированными старшими разрядами y.
MoveLeftWithAdd(0x1234,0x5678,8) = 34A9
№ 12
int MoveRight(int x, int n);
int MoveRight –сдвигает х вправо на n разрядов с заполнением 1 освободившихся разрядов
Пример: MoveRight(0x123,4) = 0xF012
№13
int RetGroupBits(int x, int n1, int n2);
RetGroupBits – возвращает значение, представленное заданной группой бит
Разряды нумеруются с 0
Пример: RetGroupBits(0xF75A, 2, 6) = 0x16
№ 14
int WriteGroupBits(int x, int n1, int n2, int y);
int WriteGroupBits – возвращает значение, полученное записью у в заданную группу разрядов x.
Разряды нумеруются с 0
Пример: WriteGroupBits(0xFFFF,4,7,0x6) = 0xFF6F
№ 15
int MoveRight(int x, int n, int onebit);
MoveRight - сдвигает х вправо на n разрядов с заполнением значением onebit (только 0 или 1) освободившихся разрядов
Примеры: MoveRight(0x123,4,1) = 0xF012
MoveRight(0x123,4,0) = 0x12
№ 16
int EraseGroupBits(int x, int n1, int n2);
EraseGroupBits – возвращает x с обнуленной группой разрядов с n1 по n2
Разряды нумеруются с 0
Пример: EraseGroupBits(0xFFFF,4,7) = 0xFF0F
№ 17
Write1toGroupBits(int x, int n1, int n2);
Write1toGroupBits –заполняет группу разрядов с n1 по n2 единицами
Разряды нумеруются с 0
Пример: Write1ToGroupBits(0x1111,4,7) = 0x11F1
№ 18
MovtLeft(int x, int n, int bit);
MoveLeft - сдвигает х влево на n разрядов с заполнением значением onebit (только 0 или 1) освободившихся разрядов
Примеры: MoveLeft(0x123,4,1) = 0x123F
MoveLeft(0x123,4,0) = 0x1230
№ 19
ChangeBits(int x, int y);
Есди в четных разрядах у стоит 1. то соответствующие разряда х инвертируются.
Разряды нумеруются с 0
Пример: ChangeBits(0xFFFF,0xF541) = 0xAABE
№ 20