c语言无符号长整形赋值问题,在线等,求解答!!!
用的win-tc 3600*24应该等于86400, 但输出值却是20864 是哪儿出问题了呢? 请大侠指出问题所在,并希望能简单叙述下原理过程。本人菜鸟…… 以下源代码: #include void main() { unsigned long int t; t=3600*24; ... 用的win-tc
3600*24应该等于86400, 但输出值却是20864
是哪儿出问题了呢?
请大侠指出问题所在,并希望能简单叙述下原理过程。本人菜鸟……
以下源代码:
#include
void main()
{
unsigned long int t;
t=3600*24;
printf("%lu ",t);
getch();
} 展开 直接给变量赋值是可以输出的。
如:t=86400 输出的值就没错
应该说明unsigned long 也是占4个字节
在TC下,一个整数默认情况下是两个字节的内存单元存放(VC一个整数默认情况下是四个字节)
数的表示范围为:-32768 ~ 32767
3600*24=86400=0x15180 已超出范围,实际赋给变量的值不是0x15180,而是0x5180=20864
所以赋值的要写成:t = 3600 * 24L;(L表示长整形数)
答:首先字符常量为'/376'形式,是单撇号 其次:字符常量'/376'是一个转义字符,是用八进制376表示的一个字符。所以若将其赋值给一个整形变量,该整形变量的值...详情>>
答:每通道的记录长度逻辑分析仪的内存是用于存储它所采样的数据,以用于对比、分析、转换(譬如将其所捕捉到的信号转换成非二进制信号【汇编语言、C语言、C++等】,等在选...详情>>
答:找一本 Think in java 的电子书 自学一下。 看看 各类招聘网站 的一些有趣的职位所要求的知识你是否具备,想办法自学一下。详情>>