一、编码:
1、有符号数的原码最高位表示符号位,0表示正、1表示负、其装值部分用二进制表示。
2、正数的反码是原码本身,负数的反码为其首位置一其他位取反。
3、正数的补码是原码本身,负数的补码为其绝对值的原码按位取反末位加一。
4、一个数的补码的补码还是原码本身。
5、补码与求补运算不是一个概念。
6、反码与求反运算不是一个概念。
二、数据类型
7、单字节:当值为0~7F时为正 当值为80~FF时值为负。
8、双字节:当值为0~7FFF时值为正 当值为8000~FFFF时值为负。
9、当数的绝对值超过该数的数据类型所允许表示的最大值时就会发生溢出。
10、对于有符号数的两个数做加减运算时符号位发生改变时则值发生溢出。
11、溢出与进位的区别:溢出是针对有符号的数据,进位是针对无符号的数据。
12、对于有符号类型:
单字节80H为0
双字节为8000H为0
三、
1、Main()函数:程序员从这个地方获得控制权
2、print()函数:功能格式化输出、缓存、输出到标准输出设备,其反回值为成功输出的字节数。
/*********************************************************************************
随机数发生器
*******************************************************************************/
#include<stdio.h>
#include<stdlib.h>#include<time.h>
void main()
{
int i,k=0,zhongzi,centre=0;
int array[54];
srand((unsigned int) time(0));//随机数种子
for(i=0;i<54;i++)
{
array[i]=i+1;
}//产生一个1-54的整形数组
for(i=0;i<54;i++)
{
zhongzi=rand()%54;//利用rand函数与54取模产生0-53的值作为数组下标的初始值
centre=array[zhongzi];
array[zhongzi]=array[i];
array[i]=centre;
}//利用产生的随机数作为下标,定义一个中间变量进行交换,打乱数组
for(i=0;i<54;i++)
{
centre=array[i]-1;
array[k]=array[centre];
printf("%d\t",array[k]);
k++;
}//将下标i对应的值作为数组下标进行输出
}