`
goodscript
  • 浏览: 71947 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

演示二进制码计算过程

 
阅读更多
package org.sse;

/**
 * 演示二进制计算过程
 * 演示简单的与运算 并打印运算结果  and
 * 演示简单的或运算 并打印运算结果  or
 * 演示简单的左平移运算 并打印运算结果 leftMove
 * 演示简单的右平移运算 并打印运算结果  rightMove
 * 
 */
public class PrintBinaryString {

	public static void main(String[] args) {
		rightMove(1, 1, 32);
		System.out.println("");
		leftMove(1, 4, 32);
		printBinaryString(255, 32);
		printBinaryString(255 >>> 4, 32);
		System.out.println(255 >>> 4);
		System.out.println("");
		and(3, 1, 32);
		System.out.println("");
		or(3, 1, 32);
	}

	/**
	 * All possible chars for representing a number as a String
	 */
	final static char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
			'9', 'a', 'b', 'c', 'd', 'e', 'f' };

	/**
	 * Convert the integer to an unsigned number.
	 */
	private static String toUnsignedString(int i, int shift, int bit) {
		char[] buf = new char[bit];
		for (int j = 0; j < buf.length; j++) {
			buf[j] = '0';
		}
		int charPos = bit;
		int radix = 1 << shift;
		int mask = radix - 1;
		do {
			if (charPos <= 0) {
				System.err.println("max bit Exception");
				return "";
			}
			buf[--charPos] = digits[i & mask];
			i >>>= shift;
		} while (i != 0);

		return new String(buf);
	}

	private static void printBinaryString(int a, int bit) {
		String binaryStrb = toBinaryString(a, bit);
		printStr(binaryStrb);
	}

	public static void rightMove(int a, int shift, int bit) {
		System.out.println(a + "向右移" + shift + "位");
		String binaryStra = toBinaryString(a, bit);
		String binaryStrb = toBinaryString(a >> shift, bit);
		printStr(binaryStra);
		printStr(shift + "", ">> ");
		String line = "------------------------------------------------------------------------------------";
		System.out.println(line);
		printStr(binaryStrb);
	}

	public static void leftMove(int a, int shift, int bit) {
		System.out.println(a + "向左移" + shift + "位");
		String binaryStra = toBinaryString(a, bit);
		String binaryStrb = toBinaryString(a << shift, bit);
		printStr(binaryStra);
		printStr(shift + "", "<< ");
		String line = "------------------------------------------------------------------------------------";
		System.out.println(line);
		printStr(binaryStrb);
	}

	public static void and(int a, int b, int bit) {
		String binaryStra = toBinaryString(a, bit);
		String binaryStrb = toBinaryString(b, bit);
		String binaryStrc = toBinaryString(a & b, bit);
		printStr(binaryStra);
		printStr(binaryStrb, "AND");
		String line = "------------------------------------------------------------------------------------";
		System.out.println(line);
		printStr(binaryStrc);
	}

	public static void or(int a, int b, int bit) {
		String binaryStra = toBinaryString(a, bit);
		String binaryStrb = toBinaryString(b, bit);
		String binaryStrc = toBinaryString(a | b, bit);
		printStr(binaryStra);
		printStr(binaryStrb, "OR ");
		String line = "------------------------------------------------------------------------------------";
		System.out.println(line);
		printStr(binaryStrc);
	}

	private static void printStr(String str) {
		System.out.print("       ");
		for (int i = 0; i < str.length(); i++) {
			System.out.print(str.charAt(i) + " ");
		}
		System.out.println();
	}

	private static void printStr(String str, String andor) {
		System.out.print("  " + andor + "  ");
		for (int i = 0; i < str.length(); i++) {
			System.out.print(str.charAt(i) + " ");
		}
		System.out.println();
	}

	private static String toBinaryString(int a, int bit) {
		String str = toUnsignedString(a, 1, bit);
		return str;
	}

}
分享到:
评论

相关推荐

    计算机基础教学设计.doc

    例:将37转换成相应的二进制数 学生活动: 将48转换成相应的二进制数 教师活动:板书ASCII码。 概念:美国信息交换标准码。由7位二进制代码组成。 学生活动: 计算7位二进制数一共有多少组合? 教师活动:ASCII码可以...

    计算机应用基础教案2.doc

    进位记数特点:十进制、二进制、八进制、十六进制 1.2.2 不同进位记数之间的转换 十进制数与二进制数的相互转换 整数:除2取余法 小数:乘2取整法 十进制数与八进制数、十六进制数的相互转换 例(725)10=(1325)8=...

    1信息与信息技术.doc

    学习重点:1、信息技术含义 2、信息编码 3、二进制 学习难点:二进制 学习方法:讲解、演示、讨论、实践 学习过程: 一、信息技术 1、定义:是指信息的获取、存储、加工处理、传递、利用和服务过程中涉及的相关技术...

    计算机基础知识(1).doc

    ASCII码用七位二进制数表示一个字符,可表示27共128个字符。包括:32个通用控制符、 10个十进制数字、52个大小写英文字母与34个专用符号。在一个字节(8个Bit)中后七位 用于表示字符的编码,最高位为奇偶校验位,一般作0...

    计算机应用基础全套电子完整版204页.pptx

    2、书写格式 在数字后面加相应的英文字母作为标识 123AH 111B 77Q 在括号外面加数字下标: (10201)8 (263)10 (3DF6)16 常用进制转换表 四种进制数的对应关系 十进制数 二进制数 八进制数 十六进制数 十进制数...

    计算机应用基础专科20.9作业参考答案.docx

    (1)十进制整数转换为二进制整数(除基取余法) 十进制整数转换为二进制整数的规则是:除以基数(2)取余数,先得到的余数为低位,后得到的余数为高位。 具体的做法是:用2连续去除十进制整数,直到商等于0为止,...

    《计算机应用基础》习题册加答案解析.doc

    A.8位二进制数 B.1位二进制数 C.1位十六进制数 D.2位八进制数 下列4中软件中属于系统软件的是__c____。 A.PowerPoint B.Word C.UNIX D.Excel 计算机内部采用二进制数进行运算、存储和控制,有时还会用到十...

    统考计算机应用基础.doc

    A.8位二进制数 B.1位二进制数 C.1位十六进制数 D.2位八进制数 9. 下列4种软件中属于系统软件的是 C 。 A.PowerPoint B.Word C.UNIX D.Excel 10. 计算机内部采用二进制数进行运算、存储和控制。有时还会用到...

    计算机应用基础复习提纲.doc

    A 条件码 B 二~十进制编码 C 二进制码 D 美国信息交换标准代码 3. 计算机内所有的信息都是以______数码形式表示的。 A.八进制 B.十六进制 C.十进制 D.二进制 4. 按存取速度来划分,下列哪类存储器的速度最快_____。...

    基于matlab和python实现的遗传算法解决旅行家问题源码+项目说明.zip

    表,把问题的解用染色体代表(在计算机里用二进制码表示),从而得到一个由具有不同染 色体的个体组成的群体。这个群体在问题特定的环境里生存竞争,适者有最好的机会生存和 产生后代。后代随机化地继承了父代的最好...

    最新计算机应用基础教案win7---2010汇编.doc

    数据在计算" "机中的表示及编码,包括了解二进制数概念、计算机内采用二进制数的优点。 " "三、重点与难点 " "重点:计算机的发展史和应用领域,计算机软件系统及硬件系统构成,数据在计算 " "机中的表示及编码 " ...

    计算机基础总结.docx

    应用 科学计算、信息处理(数据处理,如办公自动化、计算机管理等)、过程控制、计算机辅助工作(设计CAD、教学CAI、制造CAM、测试CAT)、计算机通信与网络、人工智能二、冯诺依曼设计思想: 1、计算机硬件由五部分...

    c# 加密和解密相关代码

    现在来了解一下使用“异或”加密或解密的执行过程,数值23 转换为二进制为10111,加密数字的数值15 转换为二进制为1111。对比两个二进制的值,从右向左按位对比,如果两个二进制数的相应位都为1 或两个二 进制数的...

    基于stm32的uart串口modbus通讯协议源码+说明文档.zip

    **错误校验(CRC)域占用两个字节包含了一个16位的二进制值。CRC值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较,如果这两个值不相等,就发生了...

    ALU实验报告.doc

    实验原理 算术逻辑部件ALU的主要功能是对二进制数据进行定点算术运算、逻辑运算和各种移 位操作等。算术运算包括定点加减乘除运算,逻辑运算主要用逻辑与、逻辑或、逻辑异 或和逻辑非等操作。ALU通常有两个数据输入...

    会计理论考试题

    A、模拟信息 B、模拟信息或数字信息 C、数字形式D、二进制形式的数字 6.在Windows98中,要恢复回收站中的文件,只要___B____。 A、双击该文件 B、用鼠标把该文件施出回收站 C、单击该文件 D、A、B、C均可 7.在...

    南开大学《大学计算机基础》在线作业04.docx

    A:EBCDIC码 B:ASCII码 C:原码 D:BCD码 参考选项:B 二进制数1010011.110转换为十六进制数为( )。 A:53.6 B:53.C C:123.6 D:A3.C 南开大学《大学计算机基础》在线作业04全文共8页,当前为第3页。参考选项:B 南开...

    tpe-adn:该网站为一个为期一年的学校项目而设计,该项目使用核苷酸作为我们的密码,如何在DNA中存储数据。 该网站是使用Flask框架来整合一些python程序的

    tpe-adn 一个网站(法语)为我们为期一年的11年级学校项目提供了一个网站,该网站使用核苷酸作为我们的代码来存储DNA中的数据。... 这将产生以下位序列,例如,如果该序列为a,则为二进制01100001 :

    Reversing:逆向工程揭密

    其思想很简单:我们应当对底层软件有深入的理解,还要学习那些能够让我们轻松进入任何程序的二进制码并获取信息的技术。不知道系统为什么会以它那样的工作方式运转而且其他人也不知道答案的话,怎么办?没问题——你...

Global site tag (gtag.js) - Google Analytics