最讨厌的是必须用位运算法。
C++就是C的拓展,直接学C++也行,不过难度比较大啊。不如直接学C语言。其实你若不是想编程序,学这些东西除了过计算机等级考试都没什么用。非计算机专业的话关键是掌握编程的基本思想,学C就好了。甚至有人建议学javascript,actionscript这些比较简单的脚本语言就够了,而且还使用些。计算机专业的新生的话,我也听过有的学校是直接学C++的。c++是一种语言,VC++是微软开发的一个c/c++的集成开发工具,单从语言的角度VC++就是Stroustrup所说的c++的一个implementation。VC++和其它(如g++)cpp秒秒年年implementation的不同支持之处在于:1.它集成了MFC--一个windows下的应用框架,这使用它开发windows下的应用程序相对简单。但MFC本身并不是c++语言的一部分。2.由于VC++是微软的产品,它也就有了微软的特色:总是试图建立自己的标准。因此,它与ISO c++并不完全兼容,这也是有的c++程序在其它平台下能正常编译但在VC里缺报错的原因。
提问者对答案的评价:
相信位运算你的课本上已经有了,就不再说了。程序的主要思想是:按位与的特点是,是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。也就是说,按位与运算有3个对象,分别是两个参与运算的两个数和运算有的结果。这个和小学学习的普通加法一样。如:a+b=c,,a,b,c分别是3个对象。同样的,与运算也是一一样的意思:a & b = c.只不过是与的意思和加法的意思不一样而已。根据题目要求,我们已经得到了一个参与运算的数据,就是要转换的数,现在我们需要得到转换后的数,根据与运算规则,我们构造一个数,分别和待转换的数进行与运算,得到每一位的值,要么是0,要么是1。程序如下:#include <stdio.h>intmain(void){const int iTimes=sizeof(int) * 8;int iMask=1;int x = 12345; //这个就是要转换的数int x2[iTimes];int i;
for( i=0 ; i<iTimes ; i++ ){
x2=x & iMask;
iMask = iMask << 1;
//
printf("%d",iMask);}
printf("\\n(%d)d=",x);for( i=iTimes -1 ; i >=0 ; i-- ){
printf("%d",x2 ? 1 : 0 );}
return 0;} |