- 论坛徽章:
- 0
|
回复 #1 meiyuhan 的帖子
我在学习中遇到的问题。
1.在你的机器上字符的范围有多大?
有一种做法是
[Copy to clipboard] [ - ]CODE:
printf("signed char min =%d\n", -(char)((unsigned char)~0>>1));
printf("signed char max =%d\n", (char)((unsigned char)~0>>1));
但没有明白这样做的意思。
=====================================
最高位是符号位,0的反码是全F(0xFF),除去最高位就是最大的字符:(char)((unsigned char)~0>>1));
我觉得最小值不对。应该是还要减1
2.在你的机器上,各种不同类型的浮点数的范围是怎样的?
用float.h里定义的宏FLT_MIN,FLT_MAX,DBL_MIN,DBL_MAX,LDBL_MIN,LDBL_MAX行吗?如果不行,用什么方法?
================================================
移植性问题
3如果整数类型在正常情况下是有符号的,那么signed 关键字的作用何在?
========================
你在强制转换的时候怎么办?
4.你认为位操作符和移位操作符可以用在什么地方?
====================
很多地方,比如操作寄存器的某些位,而不允许改变其他位
5假定一个整数的值是244.为什么机器不会把这个值解释为一个内存地址呢?
==============================
看你怎么用了,如果我愿意,我完全可以把它当作地址*(int *)244
是因为编译器没有这样的指令吧。
大家回答一下。谢谢。 |
|