newstar刷题笔记

My_GBC!!!!!

本题收获:

学会了循环位移加密算法,需要注意的是一个对一个字节的操作

1
2
def ror(val , n) :
return ((val >> n) | (val << (8 - n))) & 0xff

不思議なscanf

本题收获:

scanf时使用的参数%d

正常输入时,输入为范围在 [−231,232−1] 内的整数。

如果输入范围在 [−263,263−1] 内的整数,则会截断高位读取,此范围是 long long int 的范围。

如果输入范围在 long long int 范围之外,则统一将参数赋值为 −1(0xFFFFFFFF)

如果输入为非数字,分为下列情况:

  1. 如果输入仅有一个,则该输入无效,该值不变;
  2. 如果输入有数字前缀(如 12345abcd),则 scanf 仅会读取前面的数字,从第一个非数字开始,后面全部舍弃(12345);
  3. 如果输入有多个且使用一个 scanf 语句(如 scanf("%d, %d", &a, &b)),输入第一个非数字后,后面的所有输入均为无效,前面的输入可以赋值;
  4. 如果输入有多个且使用多个 scanf 语句(含循环,即一个 scanf 中仅有一个输入),则输入非数字时,如果输入的不是 +-,则后面紧跟的所有 scanf 均自动跳过,变为无效,不能输入。如果输入的 +-,则会跳过当前输入,后面仍然可以进行输入。