收录日期:2018/10/23 18:05:26 时间:2016/05/20 18:27:35 标签:C语言
#include "stdio.h"

void main( void )
{
    int a , b;
    a = 077;

    b = a | 3;   //我认为执行后b=77,但实际却是63!
                 //为何?能解释解释吗?谢谢!   
    printf("\40: The a & b(decimal) is :%d \n" , b);

    b |= 7;      //b=77
    printf("\40: The a & b(decimal) is :%d \n" , b);

    return;
}

难道是我的二进制化错了?

我是觉得有点不可能!

顺便说一下我用的编译器是:tc 2.0
兄弟,"a = 077;"其实就是将a的值赋为八进制的77,它相当于十进制的63,然后再和十进制的3相或,结果肯定是十进制的63啦。
以0开头的数字编译器认为是一个八进制的。
077 = 63D = 00111111B

3D        = 00000011B
7D        = 00000111B

所以 都是 63 

另外 , 提醒 一下

好的 编程习惯 是 #include <stdio.h>

如果 是自己 写的 头文件 用 #include "myfile.h"
#include "stdio.h"

void main( void )
{
    int a , b;
    a = 077;  //a的二进制是0000000000111111就是十进制63,前面有零是表示8进制.同意楼上的.

    b = a | 3;   //0000000000111111
                 //0000000000000011
           //求或后0000000000111111,也就是还是a,就是十进制63,   
    printf("\40: The a & b(decimal) is :%d \n" , b);

    b |= 7;      //和上面一样.b=63
    printf("\40: The a & b(decimal) is :%d \n" , b);

    return;
}
caomuyong1(叶开)说的很对,"a = 077;"其实就是将a的值赋为八进制的77,它相当于十进制的63,然后再和十进制的3相或,结果肯定是十进制的63啦。
关键在于:以0开头的数字编译器认为是一个八进制的。
同意!
caomuyong1(叶开)说的是正确的。以0开头的是八进制数输入,你换算一下就可以了。8进制的77二进制是111111,这个正是十进制的63。
077 是八进制。
所以就和你的预想不一样了
呵呵,
努力啊
以0开头的数是8进制!

剩下的自己可以解决了吧!
结了,谢谢各位!小弟受益颇深!

请问:调用用户控件的问题 请教!!下拉框事件响应!!!急!!急急急 请教这样一个数据库设计 有什么简单方法可以知道下拉框ComBobox的SelectedIndexChanged事件是由鼠标单击选择发生而不是由键盘上下键移动选择的呢? 请问:如何在cygwin中启动X窗口啊? sql问题,会的来指点,不会的也来捧个人场~!(在线等救) TreeView节点移动的问题 如何得知另一程序窗口里的位图在其窗口里的位置? 如何修改Eclipse自动生成的<%@ page language=\"java\"%> 两个ACCESS数据库如何将一个的数据合并到另一个! 两个ACCESS数据库如何将一个的数据合并到另一个! 两个ACCESS数据库如何将一个的数据合并到另一个! 两个ACCESS数据库如何将一个的数据合并到另一个! 去华为面试后的感想!! 两个ACCESS数据库如何将一个的数据合并到另一个! 两个ACCESS数据库如何将一个的数据合并到另一个! 菜鸟二问:关于注册表操作 新手问一下,有没有将ORACLE 的大多数sql语句移植为适合SQL SERVER的sql语句的工具? 两个ACCESS数据库如何将一个的数据合并到另一个! 两个ACCESS数据库如何将一个的数据合并到另一个! N简单的问题,抢分的来 两个ACCESS数据库如何将一个的数据合并到另一个! 我在写水晶报表显示的时候老是提示我输入服务器,数据库,用户名,密码 (顶者有分) 请大家指点一下--有关dr.read()的问题 觉得自己是只工蚁,感到很凄怆 两个ACCESS数据库如何将一个的数据合并到另一个! 两个ACCESS数据库如何将一个的数据合并到另一个! 两个ACCESS数据库如何将一个的数据合并到另一个! 两个ACCESS数据库如何将一个的数据合并到另一个! 两个ACCESS数据库如何将一个的数据合并到另一个!