c语言'65'是单个字符吗

Python021

c语言'65'是单个字符吗,第1张

c语言'65'是单个字符。

这个是转义字符。'\ooo'这样的形式,后面的ooo最少一位,最多3位,且必须是0~7之间的数。

代表着ascii码值是8进制ooo的字符。所以'\65'也就是8进制65对应的ascii码值。即10进制的53,也就是数字'5'。

存储级别关键字:

auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配。与static相反。当变量未指定时默认为auto。(K&R时期引入)。

static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。(K&R时期引入)。

register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。(K&R时期引入)。

extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。(K&R时期引入)。

除以8取余数

65 / 8 商 8 余数 1

8/8 商 1 余数 0

1/8 商0 余数 1

把余数 按 倒转的顺序(即后得的余数放在高位)组合起来,得 101。

另外 也可用 %o 格式 直接输出: printf("%o", 65) 输出 101

65写成二进制也就是01000001

按位取反的意思是原来的0变成1,原来的1变成0

转换后也就是

10111110

转换为十进制也就是128+32+16+8+4+2=190

而按照计算机中存储的数据都是1和0来说,计算机是没有负号这一说的,而在计算机中,最高位为1的表示为负数,而10111110也不例外

10111110的负数表示算法为:最高位为符号位,不能计算,计算机中负数都是按照补码的表示的,也就是除第一位外,各位取反,最后加1,各位取反后为:1000001,就是65,加1为65,最后算上第一位的负号为也就是-66