Home Posts tagged "C++"
formats

判断两个有符号整数相加是否溢出

在Python,默认的整数是long型的,也就是机器字长,32位的最大有符号整数为0x7fffffff,64位最大有符号整数为0x7fffffffffffffff。 而在Python,支持任意大整数的运算,也就是,当我们的long型整数(在Python对象中type为int)溢出的时候,Python会自动将其变成大整数(在Python对象中type为long),也就是和Java中的BigInteger一样,支持任意位数的整数计算,不过更加方便。 我的系统是64位的,最大符号整数为0x7fffffffffffffff,我们来看看两个0x7fffffffffffffff相加会发生什么事情。

formats

C++与Python混合编程

混合语言策略可以汲取各语言之所长,让开发更加敏捷。混合语言策略在在应用得当时可以让程序更加优雅。 在《Unix编程艺术》中,Raymond说道: 混合语言是一种知识密集型(而不是编码密集型)的编程。要让它能够工作,我们不仅应该具备相当数量的多种语言应用知识,并且还需要具备能够判断这些语言在什么地方最适合、以及怎样把他们组合在一起的潜经验。 在混合语言编程中,我们遇到的第一个问题是如何需要让他们可以互相调用。也就是像C++可以调用Python的函数、Python又可以调用C++的函数。 对于C++和Python的混合编程主要有两种方式。 将C++写的模块编译成动态链接库,然后由Python主程序使用。这种一般是单方向的使用。 用C++主程序调用Python。然后Python中可以使用C++主程序的函数。 对于第一种方式非常简单,我们在此就不讨论了。我们将着重讨论第二种方式。

formats

UltraDemo —— 数据结构实验平台

传统数据结构教学中,老师站在讲台上讲课,放着PPT,而学生坐在下面神游。 原因何在?因为学生缺乏实践机会,所以注意力难以集中。 于是UltraDemo诞生了! UltraDemo提供一个自己动手实践的平台,我们可以在UltraDemo中编程,并且可以对数据结构可视化。 这个是一个编程实践平台,可以在上面写代码,编译,执行,并且可以查看图形化的数据结构。UltraDemo支持单步执行,支持断点,支持查看当前作用域的变量,支持自动执行,支持自动执行速度选择,支持动画。 UltraDemo已经开源~ 源码:https://github.com/cedricporter/UltraDemo UltraDemo主要提供以下的功能:

formats

UltraDemo的界面用C#重写

UltraDemo是一款数据结构的实践与演示的平台,可以在上面编写类C的代码。 通过UltraDemo,我们将可以以图形化的信息观察到我们写的数据结构的变化的过程。 UltraDemo是由编译器、汇编解释器和动画框架加上动画组成的平台。可以单步调试,查看内存变量等之外还可以观看动画形式的数据结构,这样可以方便初学者更快地理解各种数据结构。 原来的界面是C++/MFC写的,长得和VS2008差不多,看上去风格挺古老的。

formats

我们的图像处理 Imagination Factory

Imagination Factory是一款轻巧美观的图像浏览和图像处理软件。这是我们大一时的C++大作业。写下来记录一下以前做了些什么。 我们小组除了俺之外有陈可昕和康磊,两人都是天才少年。陈可昕同学巾帼不让须眉,交给她的几本数千页的WPF英文书籍她都很快就可以消化。康磊同学理科高人,复杂的数学问题他都可以轻松搞定然后去看动漫了,俺有幸可以与此神人同宿舍,只可惜神人已经转专业到了电信。 Imagination Factory的界面采用C#编写,使用了WPF作为界面库。图像处理核心使用C++编写。 项目已经开源,放到 http://code.google.com/p/imagination-factory/ ,有兴趣的同志们可以接着完善它吧。 Imagination Factory运行时的截图:

formats

我们的游戏 Scar

Scar,中文名:伤疤,是我们的《计算机图形学》和《IT项目管理》的大作业。虽然不想做的很大,但是最后我们写了4万多行代码。发现也是挺大的。 简介 我们花费的时间:4个月(9.14 – 12.14),这个是由屠文翔同学辛劳得出的粗略统计。 验证准备阶段:9月14日 – 9月21日 设计阶段:9月22日 – 10月18日 构建阶段:10月19日 – 11月16日 赶工阶段:12月6日 – 12月14日 参与人数:7人(其中编外2人) 项目经理:屠文翔 开发人员:华亮、杨旭瑜、杨成熙、谢骏飞 、林剑飞、陈存腾 总代码量:42437行 这个是我们非常努力得到的,记得那段时间我也基本持续几个月每天两三点睡,课也不上,去上了也是大家带着笔记本一起在教室后面写代码。 我们的项目是开源的,遵循Mozilla Public License 1.1协议,托管在Google Code上。http://code.google.com/p/opengl-scut/。

© EverET.org