碧海潮声大学生网

标题: C的一个小题目 [打印本页]

作者: cainiao    时间: 2006-4-5 00:59
标题: C的一个小题目

求解2的64次方?

不知道到什么时候才能有答案。


作者: 墙角野猫    时间: 2006-4-6 00:15
就是64个2相乘嘛
作者: 你和我的距离    时间: 2006-4-6 00:20
mov eax,1   
    mov ecx,40h
lop: imul  eax,2
    dec  ecx
    loop  lop

就是用一个循环就行
   double sum;
   sum=1;
   for(int i=0;i<64;i++)
   {
      sum=sum*2;
   }
差不多就这样了。
作者: 墙角野猫    时间: 2006-4-6 00:53
main()
{
int i,a=1;
for(i=1;i<=64;i++)a=a*2;
}
作者: 墙角野猫    时间: 2006-4-6 00:56
恩,是该用 double
作者: cainiao    时间: 2006-4-6 03:32

下面是引用墙角野猫于2006-04-05 16:56发表的:
恩,是该用 double

不对啊,用这些都会得不到正确答案的,

不信可以运行下


作者: cainiao    时间: 2006-4-6 03:38

下面是引用你和我的距离于2006-04-05 16:20发表的:
哈哈,LZ应该是非专业的吧,要么是大一新生,刚学C语言
mov eax,1
mov ecx,40h
lop: imul eax,2
dec ecx
.......

我是大二的了,是计算机专业的,我自己认为我是我们班的一个高手,

虽然说我还是什么都不会,呵呵

这个题目我是在网上看到的,其实我第一感觉也是用实型数据,可是最终还是不行的

正确答案是 18446744073709551616

而如果用实型数据的话会得到18446744073709551600。00000的


作者: 墙角野猫    时间: 2006-4-6 03:43
18446744073709551600
作者: 墙角野猫    时间: 2006-4-6 03:45
原来这个题目没我们想的那么简单
作者: cainiao    时间: 2006-4-6 03:45
下面是引用墙角野猫于2006-04-05 19:43发表的:
18446744073709551600

2的64次方最后不可能是0的至少的偶数
作者: 墙角野猫    时间: 2006-4-6 03:45
分两段?
作者: cainiao    时间: 2006-4-6 03:47
这个题目大家想的时候都忘记了一个小知识点,
就是现在的大多数C编译器都是支持16位的,而32为的也不多,更不用说是64位的了
作者: 墙角野猫    时间: 2006-4-6 03:48
还是觉得要分两段
作者: cainiao    时间: 2006-4-6 03:49
论坛里这个版快为什么很少有人发帖啊,
大家交流下知识不是挺好的吗?
作者: 墙角野猫    时间: 2006-4-6 03:50
笨笨让人有点寒
作者: 墙角野猫    时间: 2006-4-6 03:52
就像汇编里的寄存器
作者: 墙角野猫    时间: 2006-4-6 03:52
DX AX 啊
作者: cainiao    时间: 2006-4-6 04:00

下面是引用墙角野猫于2006-04-05 19:52发表的:
DX AX 啊

不好意思,我只学过C ,看不懂这是什么语言的,

对了,如果学汇编的话,会不会很难呢?


作者: 墙角野猫    时间: 2006-4-6 04:04
不是的啊
我是说用两个 int 连起来用
作者: cainiao    时间: 2006-4-6 04:10
那好象也不够吧,int 是16位的,连起来也是32位啊,还差一半,如果说用4个的话
,那有该怎么写呢?其实用两个连起来,我也是不会写。
作者: 你和我的距离    时间: 2006-4-6 04:16
下面是引用cainiao于2006-04-05 20:00发表的:
不好意思,我只学过C ,看不懂这是什么语言的,
对了,如果学汇编的话,会不会很难呢?
呵呵,其实学汇编不难的。真的,我那时候就花了10天时间,那10天基本每天12小时接触汇编。你到了大三上学期,就会开始学汇编了,IBM-PC汇编语言那种8086汇编。个人感觉汇编编程序思路比高级语言清晰多了,呵呵。学汇编其实乐趣很多的,好处也挺多,而且你以后要和编程打交道,汇编是必不可少的。如果真的很有兴趣,其实现在就可以去找书看了,可以向上届的借,也可以上图书馆找8086汇编的书。
补充一下,汇编只适合当作一种编程的基础,做做驱动开发,做其他应用实在是太逊了。
作者: 你和我的距离    时间: 2006-4-6 04:20
下面是引用cainiao于2006-04-05 20:10发表的:
那好象也不够吧,int 是16位的,连起来也是32位啊,还差一半,如果说用4个的话
,那有该怎么写呢?其实用两个连起来,我也是不会写。
在汇编里可以用缓冲区,C里也应该可以的。
作者: cainiao    时间: 2006-4-6 04:25

下面是引用你和我的距离于2006-04-05 20:16发表的:

呵呵,其实学汇编不难的。真的,我那时候就花了10天时间,那10天基本每天12小时接触汇编。你到了大三上学期,就会开始学汇编了,IBM-PC汇编语言那种8086汇编。个人感觉汇编编程序思路比高级语言清晰多了,呵呵。学汇编其实乐趣很多的,好处也挺多,而且你以后要和编程打交道,汇编是必不可少的。如果真的很有兴趣,其实现在就可以去找书看了,可以向上届的借,也可以上图书馆找8086汇编的书。
补充一下,汇编只适合当作一种编程的基础,做做驱动开发,做其他应用实在是太逊了。

只要是和电脑有关的,我基本是都有兴趣的,就连FLASH之类的应用我也有兴趣,只是学的时间少,

最赶兴趣的就是 自己也能够做个东西,哪怕是做个小小的计数器也好。

我现在总感觉我们大二这界计算机班好象什么也不会


作者: 你和我的距离    时间: 2006-4-6 04:49
下面是引用cainiao于2006-04-05 20:25发表的:
只要是和电脑有关的,我基本是都有兴趣的,就连FLASH之类的应用我也有兴趣,只是学的时间少,
最赶兴趣的就是 自己也能够做个东西,哪怕是做个小小的计数器也好。
我现在总感觉我们大二这界计算机班好象什么也不会
大二其实还早,呵呵,先把算法和数据结构学好,这个很重要的。
作者: 墙角野猫    时间: 2006-4-6 04:50
不早,时间眨眼就过。
作者: cainiao    时间: 2006-4-6 04:59
LS有道理,现在实在是不早了,这学期又快过掉一半了,可是什么也没有学到
作者: 你和我的距离    时间: 2006-4-6 05:01
呵呵,到大三开始去学些网络编程,数据库技术也不错。不过如果LZ基本功很强了,早点接触那东西也好的。这就要你自学了,不过其实教科书的那些内容都太基础了。像我们学的数据结构,完全只是讲了些理论,根本没讲过什么应用,以至于我以前对数据结构根本没引重视(其实以前都是在玩游戏,没时间学那东西啦 [s:2] )像我现在到了大三,开了所谓实用技术课。网络程序设计。。。。其实就是ASP,还开了门VB。。。那VB老师还是一看就是非专业的,讲VB完全就是在读课本,把例子一讲就完事,根本不讲为什么要把代码加到那里。把编程技术弄成应用技术了。。。。多媒体技术。。。。啥都讲,什么光盘刻录,虚拟光驱,录音软件使用,声音处理程序,图形处理程序,动画制作软件,3D图形制作软件都讲。。。诶,真的是通才式教育啊,把我们教成啥都了解一点,却又啥都不会。诶,出去做什么?????所以现在开始要选好方向,不过了解是肯定要的,但不必多花时间去钻研。个人认为现在网络编程方向,数据库技术方向是比较热门的,但是这路也很艰难,因为走的人来太多了
作者: 墙角野猫    时间: 2006-4-6 05:17
楼上是大三,那么。。。
作者: 你和我的距离    时间: 2006-4-6 05:22
下面是引用墙角野猫于2006-04-05 21:17发表的:
楼上是大三,那么。。。
那么我们是同届的咯?这位朋友是A还是C的呢? [s:2]
作者: cainiao    时间: 2006-4-6 05:24
我现在确实就感觉到我们计算机是什么都讲,可是什么也不会,而且老师讲的东西全是书上的,
根本就没有加深,不过经常提醒我们要努力学这些,老师这点蛮不错的。

现在我怀疑数据结构是到底干什么用的,虽然老师是每节课都说这门课是重点的重点,
但我不知道这是干什么用的,所以就没有学好了
作者: 你和我的距离    时间: 2006-4-6 05:25
喔,补充一下,大三还开一门数值分析,这东西不错,在某些方面挺重要的。还有一门微机技术与应用,这本书有500多页 [s:2] ,学学里面的东西还是挺有意思滴,哈哈。
作者: 你和我的距离    时间: 2006-4-6 05:28
下面是引用cainiao于2006-04-05 21:24发表的:
我现在确实就感觉到我们计算机是什么都讲,可是什么也不会,而且老师讲的东西全是书上的,
根本就没有加深,不过经常提醒我们要努力学这些,老师这点蛮不错的。

现在我怀疑数据结构是到底干什么用的,虽然老师是每节课都说这门课是重点的重点,
但我不知道这是干什么用的,所以就没有学好了
数据结构简单说就是把现实的东西用数据的结构形式来表示,这个结构设计的好坏直接影响到设计出的程序质量的好坏。好的数据结构加上好的算法才是高质量的程序,如果数据结构设计不恰当,就算你把算法研究死,收益也很小
作者: cainiao    时间: 2006-4-6 05:34
多谢LS讲解
那么应该这样学数据结构呢?
如果说是教材的话,其实我只要1个星期就可以解决了,
但我觉的还是找不到用处,就是说少了个应用的里例子。
作者: 你和我的距离    时间: 2006-4-6 05:41
下面是引用cainiao于2006-04-05 21:34发表的:
多谢LS讲解
那么应该这样学数据结构呢?
如果说是教材的话,其实我只要1个星期就可以解决了,
但我觉的还是找不到用处,就是说少了个应用的里例子。
说到如何学数据结构,我也很难说。其实在有些算法联系的时候,我们应用的数组,栈也算是一种简单的数据结构。要说到应用,就得找个实际问题来解决了。不过,你现在对那些结构体,还有对相应数据结构的操作有些熟悉的话,确实要找些其他方面的东西来学了。因为是门基础课程,单单的学是很枯燥的,只有到实际应用中才能有深刻理解。
作者: cainiao    时间: 2006-4-6 17:38
不知道什么时候会有答案做出来呢?
难道现在就要我公布答案了吗?
作者: 墙角野猫    时间: 2006-4-6 18:35
main()
{
int i;
int a=0,b=0,c=0,d=0,e=1;
for(i=1;i<=64;i++)
{
e=e*2;
d=d*2;
c=c*2;
b=b*2;
a=a*2;
if(e>=10000){e=e-10000;d++;}
if(d>=10000){d=d-10000;c++;}
if(c>=10000){c=c-10000;b++;}
if(b>=10000){b=b-10000;a++;}
}
printf("%d%d%d%d%d",a,b,c,d,e);
getch();
}




欢迎光临 碧海潮声大学生网 (http://www.zjoubbs.com/) Powered by Discuz! X3.2