宝马线上娱乐-业界公认的最权威网站,欢迎光临!

宝马线上娱乐_宝马线上娱乐平台_宝马线上娱乐2011

6行C语言代码初学者硬是看不懂

时间:2019-09-02 04:23来源:未知 作者:admin 点击:
可选中1个或多个下面的关键词,搜索相关资料。也可直接点搜索资料搜索整个问题。 展开全部int const shift = sizeof(int)*8-1; //shift仅仅在此通过初始化赋值(以后不能再赋值了),其值为

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部int const shift = sizeof(int)*8-1; //shift仅仅在此通过初始化赋值(以后不能再赋值了),其值为int类型长度(以字节为单位)的8倍-1,比如假定int类型为32位(4个字节),那么shift=31,假定int类型为16位(2个字节),那么shift=15,注意C编译器的不同实现里,int类型可能是16位的,也可能是32位的

  if ( (a-b)&mask ) max_num = b; //这里的a和b推断应该是int类型吧,(a-b)要么小于0(负数),要么不小于0(正数或0),(a-b)也是int类型的,int类型是有符号的类型,用补码表示负数,最高位为1意味着这个数是负数。&运算是按位“与”运算,因为mask只有最高位是1,其它位全为0,这里的意思就是屏蔽掉(a-b)的其它位,只看(a-b)的最高位,如果(a-b)的最高位为1(说明是负数),那么( (a-b)&mask ) 就不是0。注意if ( (a-b)&mask ) 是if (( (a-b)&mask )!=0)的简化写法(程序员几乎都这么写的),( (a-b)&mask ) 不为0,就说明(a-b)的最高位是1,也就是说(a-b)是一个负数,也就是说,b大a小。

  //这段代码就是把a、b两个数中比较大的一个的值放到变量max_num中。

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
最新评论 进入详细评论页>>
推荐内容