查看: 3141|回复: 11

[有事请教] 关于C语言中的位运算是如何运算的?

[复制链接]
梦石
0
星屑
890
在线时间
217 小时
注册时间
2011-1-26
回帖
618
发表于 2011-12-24 14:32:31 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
在C语言学习过程中遇到了麻烦,所以就来问各位了。
关于C语言中的按位与、按位或、左移、右移、按位异或是怎么运算的。
他们说是二进制算法,那什么又是二进制呢?


还有,下面这段加法计算器代码有错误么,如果没有,请问要怎么在VC++6.0中书写,生成什么文件:
#include <stdio.h>
int main()
{
int a=0,b=0,c=0;
printf("输入加数a:\n");
scanf("%d",$a);
printf("输入加数b:\n");
scanf("%d",$b);
c=a+b;
printf("结果等于c:\n");
printf("%d\n,c);
return 0;
}

点评

谢谢各位,2进制学懂了,在Windows默认的计算器中学会了  发表于 2012-1-1 18:08

老黄鸡

梦石
4
星屑
45805
在线时间
7957 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2011-12-24 14:36:26 | 显示全部楼层
?就是二进制按同位运算啊,就像十进制的十位百位千位你都不懂么.
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
890
在线时间
217 小时
注册时间
2011-1-26
回帖
618
 楼主| 发表于 2011-12-24 14:40:57 | 显示全部楼层
fux2 发表于 2011-12-24 14:36
?就是二进制按同位运算啊,就像十进制的十位百位千位你都不懂么.

就是每2进一位,1+1就等于10,10+2就等于20了是吗

点评

好吧。  发表于 2011-12-25 18:10
10 + 2 = 20…………2进制只有0和1木有2的;你想表达的意思应该是: 10 + 10 = 100………………  发表于 2011-12-24 23:56
都说每2进一位了  发表于 2011-12-24 14:43
额  发表于 2011-12-24 14:42
你赢了  发表于 2011-12-24 14:41
回复

使用道具 举报

梦石
0
星屑
120
在线时间
5250 小时
注册时间
2011-10-7
回帖
1769

开拓者贵宾

发表于 2011-12-24 14:45:09 | 显示全部楼层
本帖最后由 凌童鞋 于 2011-12-24 14:52 编辑

10的二进制1010
10>>1:0101
10>>2:0010
10<<1:10100
10<<2:101000  

程序运行结果应该是个控制台,让你先输一个数a,再输一个数b,然后输出 a +b 的结果…
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45805
在线时间
7957 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2011-12-24 14:49:09 | 显示全部楼层
510035021 发表于 2011-12-24 14:40
就是每2进一位,1+1就等于10,10+2就等于20了是吗

取址符都打错你怎么学的。
  1. #include<stdio.h>
  2. main()
  3. {
  4.         int a=0,b=0,c=0;
  5.         printf("输入加数a:\n");
  6.         scanf("%d",&a);
  7.         printf("输入加数b:\n");
  8.         scanf("%d",&b);
  9.         c=a+b;
  10.         printf("结果等于c:\n");
  11.         printf("%d\n",c);
  12. }
复制代码
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

宛若

梦石
0
星屑
1888
在线时间
529 小时
注册时间
2007-8-19
回帖
1466

极短24参与开拓者

发表于 2011-12-24 23:12:44 | 显示全部楼层
LZ连二进制都不学就敢研究位运算么……
你就简单的把移位想象成×2和÷2得了……
[url=http://rpg.blue/thread-219730-1-1.html]http://unhero.sinaapp.com/wi.php[/url]
[color=Red]如你所见这是个死坑,没错这就是打我的脸用的[/color]
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45805
在线时间
7957 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2011-12-25 00:21:40 | 显示全部楼层
逸豫 发表于 2011-12-24 23:12
LZ连二进制都不学就敢研究位运算么……
你就简单的把移位想象成×2和÷2得了…… ...

哇好久不见逸豫sama!

点评

其实一直都在,只不过都是用马甲就是了……  发表于 2011-12-25 00:29
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
175
在线时间
698 小时
注册时间
2009-11-15
回帖
478
发表于 2011-12-25 07:23:14 | 显示全部楼层
scanf("%d",$a);
把这一行和下面那一个变量前面的$改成&
另外最后一行少了个"

点评

对了,C++中的新建项目有很多,是新建哪个  发表于 2011-12-25 18:00
考上三级了!
回复

使用道具 举报

梦石
0
星屑
890
在线时间
217 小时
注册时间
2011-1-26
回帖
618
 楼主| 发表于 2011-12-25 17:59:49 | 显示全部楼层
2719358 发表于 2011-12-25 07:23
scanf("%d",$a);
把这一行和下面那一个变量前面的$改成&
另外最后一行少了个"

那么二进制要怎么学,是我年龄不够还没学到么,自己学可以的么,我在上初二

点评

如果是vc6.0的话,大概是win32, 另外我在七年级  发表于 2011-12-25 18:13
回复

使用道具 举报


  • 更新完成啦
  • 梦石
    0
    星屑
    894
    在线时间
    6267 小时
    注册时间
    2006-6-7
    回帖
    8173
发表于 2011-12-25 18:11:16 | 显示全部楼层
510035021 发表于 2011-12-25 17:59
那么二进制要怎么学,是我年龄不够还没学到么,自己学可以的么,我在上初二 ...

初一的时候为了修改游戏就已经知道怎么算16进制了。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部