考虑下面的C程序。
null
#include <stdio.h> int main( void ) { int a = 'd' ; printf ( "%d" , a); /*OUTPUT - 100 (ASCII Code for character d)*/ int b = 'dd' ; printf ( "%d" , b); /*OUTPUT - 25700 (Explanation in detail given below)*/ return 0; } |
输出:
100 25700
我们可以很容易地猜出100个字符的ASCII值。
让我们考虑以下几行
int a = 'dd'
(%d,a)将25700打印为输出 01100100100100100(100的二进制) 假设int为2字节,起始字节由第一个字符“d”占用,第二个字节由第二个字符“d”占用。因此,整个二进制文件涉及0110011100100,即2^14+2^13+2^10+2^6+2^5+2^2=25700。
现在猜猜下面代码的输出。
#include <stdio.h> int main( void ) { int b = 'de' ; printf ( "%d" , b); return 0; } |
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END