黑马程序员技术交流社区
标题:
%i 与 %li 有什么不同
[打印本页]
作者:
Silent_memory
时间:
2014-3-5 11:20
标题:
%i 与 %li 有什么不同
本帖最后由 Silent_memory 于 2014-3-12 22:18 编辑
假如我定义 int a = 10; long int b = 20; 我想用NSLog输出a时 可以为 %i 输出b时用 %li
这个 %i 与 %li 有什么具体的区别吗? 我用%i 去输出b 会对结果有啥影响。
作者:
脸皮猴
时间:
2014-3-5 12:03
本帖最后由 脸皮猴 于 2014-3-5 12:05 编辑
%i应该是输出整型,%li是输出长整型。具体会出现什么样子的区别,你可以试一试。定义一个长整型变量,然后用%i输出。你自己看得到,你会记忆更深刻。
作者:
conpgy
时间:
2014-3-5 19:13
因为长整型的范围大于等于整型。如果一个机器上长整型占4个字节。如一个长整型的二进制是这样表示的:00000000 00000011 01000000 00000000。而如果整型只占两个字节。你用%i输出整型。就会发生溢出。即把前面两个字节给舍去了。这个数字变成了 01000000 00000000!因此打印出来的这个整数并不是实际的值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2