7.6日所学知识:
1.比较数组大小:
#include
using namespace std;
int main()
{
int* p = NULL;
int n = 0;
scanf_s("%d", &n);
p = new int[n];
//p = (int*)malloc(sizeof(int) * n);
for (int i = 0; i < n; ++i)
{
p[i] = i;
}
//for (int i = 0; i < n; ++i)
//{
// printf("%d", p[i]);
//}
delete p;//c++ free§;c
return 0;
}
2.一到一百不出现重复:
#include<stdio.h>
#include
#include
using namespace std;
int FindValue(int* br, int n, int val)
{
assert(br != NULL);
for (int i = 0; i < n; ++i)
{
if (br[i] = =val)
return i;
}return -1;
}
int main()
{
return 0;
}
或:#include<stdio.h>
#include
#include
using namespace std;
int FindValue(int* br, int n, int val)
{
assert(br != NULL);
int pos = -1;
for (int i = 0; i < n; ++i)
{
if (br[i] == val)
{
pos = i;
break;
}
}return pos;
}
int main()
{
return 0;
}
3.交换:
#include
using namespace std;
void Swap_Int(int x, int y)
{
int tmp = x;
x = y;
y = tmp;
}
int main()
{
int a = 10;
int b = 20;
Swap_Int(a, b);
return 0;
}
3. 关于进制的基本了解:
int main()
{
int a = 10;//10
int b = 010;//8
int c = 0x10;//16
int d = 0b1010;//2
printf("%d %d %d %d\n", a, b, c, d);//10
printf("%o %o %o %o\n", a, b, c, d);//8
printf("%x %x %x %x\n", a, b, c, d);//16
printf("%b %b %b %b\n", a, b, c, d);//2
}
(10100)2→(12222+0222+122+02+01)10
八进制、十六进制转化成十进制就是把2换成8和16
二进制转化成八进制和十六进制时:八进制三个三个看分别是22、2、1然后哪一个有1之后加在一起就是第一个数;十六进制四个四个看。
4.位与、位或的基本问题:
#include
using namespace std;
int main()
{
char a = 67;
char b = 0x54;
char c = 0;
c = a & b;
printf("%x\n", c);
c = a | b;
printf("%x\n", c);
c = a ^ b;
printf("%x\n", c);
}
位与:&有一个0就变成0;
位或:|有一个1就变成1;
-:相同为0,相异为1;
:1变成0,0变成1;a=b b保持不变;
右移>>:在后面加0;左移与他相反。