C的+-乘除

正则表达式

int main(int argc,char *argv[],char *envp[])
{
  char szBuf[8] = {0};
  //scanf("%7s",szBuf);//输入检查  %s无限输入
  //scanf("%7[0-9]s",szBuf);//只允许输入0 1 2 3 4 5 6 7 8 9   123a4567从a截断123
  //scanf("%7[1,3,5,7,9]s",szBuf);//只允许输1 3 5 7 9
  //scanf("%7[0-9,a-z,A-Z]s",szBuf);//只允许输十六进制
  //scanf("%7[^?]s",szBuf);不允许?
  {
    scanf("%7s",szBuf);//输入检查  %s无限输入
    puts(szBuf);
    fflush(stdin);//清掉缓冲 rewind(stdin)  回文件首位  安全隐患残留问题
  }
  return 0;
}

关于系统

  • xp:0012ff7c
  • win10: 0019ff28
  • win7:0018ff**
    可以知道系统环境

关于补码

int main(int argc,char *argv[],char *envp[])
{
  int i = 0;
  while(i>0)//退出是7fffFFFF
  {
    i++;
  }
  printf("%08x",i);//80000000
  system("pause");
  return 0;
}

向0取整

向下取整是往负无穷的方向取值
向上取整是往正无效的方向取值
1011011>>3位
数学上是1011.011
计算机上1011.000
c语言是向0取整

int main(int argc,char *argv[],char *envp[])
{
  // a/b =q,r
  //r =a-qb
  printf("%d\r\n",10%3);//1
  printf("%d\r\n",10%-3);//1
  printf("%d\r\n",-10%3);//-1
  printf("%d\r\n",-10%-3);//-1
  int i = 50;
  while(i >= -5)
  {
    printf("%d /8 =%d\r\n",i,i/8);
    printf("%d >>3 =%d\r\n",i,i/8);//除数相当于右移动
    printf("%d\r\n");
    i--;
  }
  return 0;
}

*的秘密

AB
A
10101100=A*(10000000+100000+1000+100)=10000000A+100000A+1000A+100A=A<<8+A<<4+A<<3+A<<2

\问题

乘法和移位问题
AB>>n

减法问题

posted @ 2024-04-03 16:50  不会笑的孩子  阅读(3)  评论(0编辑  收藏  举报