五十道编程小题目 --- 32 取一个整数a从右端开始的4~7位。 java
2016-09-09 13:21
399 查看
【程序32】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
① 以二进制方式考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
②以十进制考虑:
(1).一个五位以上的数a, 除以10000(a/10000) 取商。
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
① 以二进制方式考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
②以十进制考虑:
(1).一个五位以上的数a, 除以10000(a/10000) 取商。
ublic class Test32 { public static void main(String[] args) { Integer a = 34; System.out.println("二进制方式:"); System.out.println("a的十进制值:" + a); System.out.println("a的二进制值:" + Integer.toBinaryString(a)); System.out.println("a>>4 的十进制值:" + (a>>4)); System.out.println("a>>4 的二进制值:" + Integer.toBinaryString(a>>4)); System.out.println("1111的二进制值:" + Integer.toBinaryString(15)); System.out.println("a>>4 & 1111 的十进制值:" + (a>>4&15)); System.out.println("a>>4 & 1111 的二进制值:" + Integer.toBinaryString(a>>4&15)); System.out.println("a的十六进制值:" + Integer.toHexString(a)); System.out.println("-------------------------"); Integer b =5234344; System.out.println("b = " + b); System.out.println("b/10000 = " + b/10000); } }输出结果:
二进制方式: a的十进制值:34 a的二进制值:100010 a>>4 的十进制值:2 a>>4 的二进制值:10 1111的二进制值:1111 a>>4 & 1111 的十进制值:2 a>>4 & 1111 的二进制值:10 a的十六进制值:22 ------------------------- b = 5234344 b/10000 = 523
相关文章推荐
- java学习书籍
- Java的HashMap和HashTable
- JAVA基础6.47——子父类中的成员变量
- Eclipse/MyEclipse上配置Spring环境
- Eclipse中调节字体大小、颜色与背景色
- 求助!!java!! 求一个将 1维整型数组转换为字符串类型的方法!
- java通过jdbc连接MySQL数据库
- 简单的JAVA爬虫
- JAVA基础6.46——继承概述(2)
- Spring声明式事务管理与配置详解
- spring-Aware接口
- java学习日记_25:面向对象之static关键字
- JavaWeb---Cookie---浏览图片---显示最近浏览图片
- 破解Myeclipse10找不到Common\plugins文件夹
- JDK,JRE,JVM区别与联系
- java 类继承两个父类,同名变量 public 比protected具有优先访问权限
- Struts2标签OGNL简单应用
- 异常:No result defined for action
- eclips导入GitHub的java文件
- Java中系统属性Properties介绍 System.getProperty()参数大全