社区
Java SE
帖子详情
题目:取一个整数a从右端开始的4~7位。
cui4029
2008-05-23 10:44:55
【程序32】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
这个题我没有思路,请帮助我说明思路,尤其是下面的程序分析,谢谢!
...全文
1409
7
打赏
收藏
题目:取一个整数a从右端开始的4~7位。
【程序32】 题目:取一个整数a从右端开始的4~7位。 程序分析:可以这样考虑: (1)先使a右移4位。 (2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) (3)将上面二者进行&运算。 这个题我没有思路,请帮助我说明思路,尤其是下面的程序分析,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
robinho04
2011-02-18
打赏
举报
回复
5楼的分析错了.
举例:a = 1234567,他的2进制值为100101101011010000111
(1)右移4位也就是a>>4,a=00001001011010110100 (这里是a=000010010110101101000)
(2)设置个低4位为1其他为0的数b=0x0000000f()也就是00000000000000001111
(3)a&b = (前面按位与后都为0)0100也就是4 (所以这里是1000,也就是8,所以lz算法是对的)
三年以后的发现,希望对楼主有用。
jiaping108
2008-05-23
打赏
举报
回复
从实现上来说直接 int a = 123456789 / 1000;这样就可以实现
就LZ的程序分析说一下,感觉有些问题,下面的操作是针对2进制的,比如说1234567,按照下面的思路是取不到1234的
(1)先使a右移4位。 //把a的2进制表示右移4位,也就是0123位移除,现在的4567位就在低4位了
(2)设置一个低4位全为1,其余全为0的数。可用~(~0 < <4) //此数如0x0000000f,这就是一个低四位全1其他全0的数
(3)将上面二者进行&运算。//&操作后,低四位值不变,其他位置上的数字全部被清0
举例:a = 1234567,他的2进制值为100101101011010000111
(1)右移4位也就是a>>4,a=00001001011010110100
(2)设置个低4位为1其他为0的数b=0x0000000f()也就是00000000000000001111
(3)a&b = (前面按位与后都为0)0100也就是4
最后结果就是4
glf2002lucky
2008-05-23
打赏
举报
回复
a=a % 1 000 000;
a=a / 1000
Tony2251
2008-05-23
打赏
举报
回复
[Quote=引用 2 楼 palm_civet 的回复:]
写错了
Java codeint a = 123456789 % 10000;
[/Quote]
从右端开始的4~7位 应该先以为然后在 取余吧。
a=a<<4;
a%10000;
palm_civet
2008-05-23
打赏
举报
回复
写错了
int a = 123456789 % 10000;
palm_civet
2008-05-23
打赏
举报
回复
int a = 123456789 % 1000;
取四位
火龙果被占用了
2008-05-23
打赏
举报
回复
[Quote=引用楼主 cui4029 的帖子:]
【程序32】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0 < <4)
(3)将上面二者进行&运算。
这个题我没有思路,请帮助我说明思路,尤其是下面的程序分析,谢谢!
[/Quote]
右移 4 位的话,是按二进制位来移的,并不是按十进制位来移的,
因此,楼主的分析从第一点开始就错了。
python
取
一个
整数
a 从
右端
开始的 4~7
位
(示例)
#
题目
: #
取
一个
整数
a 从
右端
开始的 4~7
位
。 # 分析: # 可以这样考虑: # (1) 先使a右移4
位
。 # (2) 设置
一个
低4
位
全为1,其余全为0的数。可用(0<<4) # (3) 将上面二者进行 与运算(&)。
python 实现
位
取
反、
位
移动
#
题目
:
取
一个
整数
a从
右端
开始的4〜7
位
。 # 程序分析:可以这样考虑: (1)先使a右移4
位
。 (2)设置
一个
低4
位
全为1,其余全为0的数。可用~(~0<<4) (3)将上面二者进行&运算。
给定
一个
整数
n,求出所有连续的且和为n正
整数
给定
一个
整数
n,求出所有连续的且和为n正
整数
。比如对于
整数
27,结果为2~7、8~10、13和14,因为这些数之间的
整数
的和都是27。注意:并不是所有的
整数
都有结果,例如不存在连续的
整数
和为16。为了提高计算的效率,程序所采用的算法如下:(1) 从1开始计算连续的
整数
和sum,直到sum不小于n为止;(2) 在第i步,如果sum=i+(i+1)+…+j比n大,则去掉连加的最左端的数i,如果sum比n小,在连加的
右端
加上
一个
数(j+1);(3) 如果和sum=i+(i+1)+…+j等于n,则i+(i+1)+…+j为一组解,输出该解,并将连加的
右端
加上(j+1);(4) 重复2,3步,直到i大于n/2为止。
1481: c++同构数
题目
描述 同构数是这样一种数:它出现在它的平方数的
右端
。例如:5的平方是25,5就是同构数,25的平方是625,25也是构数。找出1~N之间(包括N)的全部同构数。 输入 正
整数
N,N<=32767。 输出 1~N之间的全部同构数,从小到大排列,用空格隔开。 样例输入 Copy 100 样例输出 Copy 1 5 6 25 76
【程序32】
题目
:
取
一个
整数
a从
右端
开始的4~7
位
。 程序分析:可以这样考虑:
/* 2017年3月9日10:52:27 java基础50道经典练习题 例32 Athor: ZJY Purpose: 【程序32】
题目
:
取
一个
整数
a从
右端
开始的4~7
位
。 程序分析:可以这样考虑: (1)先使a右移4
位
。 (2)设置
一个
低4
位
全为1,其余全为0的数。可用~(~0<<4) (3)将上面二者进行&运算。 */ import java.util.Scanne
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章