`
goodscript
  • 浏览: 72917 次
  • 性别: 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;
	}

}
分享到:
评论

相关推荐

    二进制合成文件

    在"printCombine"这个文件名中,我们可以推测这可能是一个用于演示或实现二进制文件合并的工具或脚本,可能是用来合成与打印相关的二进制组件。 总之,二进制合成文件是软件工程中的关键技术,它使得开发者能够有效...

    汇编十六进制转二进制

    本题目主要介绍了如何使用汇编语言实现从十六进制到二进制的转换,并通过具体实例进行了演示。通过对程序的分析,我们不仅了解了十六进制与二进制之间的转换原理,还学习了汇编语言的基本结构以及常用的指令集。这种...

    单片机二进制转十进制程序代码

    总的来说,本文介绍的单片机二进制转十进制程序代码是一个典型的单片机基础编程示例,它不仅演示了如何进行二进制数输入和十进制数显示,还展示了单片机编程中按键检测、数码管控制、延时函数编写等基础知识点的应用...

    PB存取超过32k的二进制文件的实例 pb 10以上

    ### PB存取超过32k的二进制文件的实例详解 #### 一、引言 在PowerBuilder(简称PB)开发中,处理大文件尤其是超过32KB大小的二进制文件时,经常会遇到一些挑战。这是因为PB默认对二进制数据的处理有一定的限制。...

    键盘按键值ASCII十进制十六进制读取

    首先,ASCII码是一种7位二进制编码,它可以表示128个不同的字符。每个ASCII码可以转换为十进制和十六进制形式。例如,大写字母"A"的ASCII码是65(十进制)或41(十六进制)。对于数字键,它们的ASCII码从48(十进制...

    java实现字符转换成十六进制的ASCII码

    ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是一种基于拉丁字母的一套电脑编码系统,它用7位二进制数来表示128个不同的字符,包括英文大小写字母、数字、标点符号以及一些...

    16进制转ASCII码对应字符串

    16进制(Hexadecimal)是一种逢16进1的计数系统,广泛用于表示二进制数字,因为它提供了简洁的表示方式,特别是对于二进制中的高位。ASCII码(American Standard Code for Information Interchange),则是一种字符...

    LBP.zip_LBP特征_LBP算子_lbp_局部二进制模式

    LBP-test文件可能包含的是用于测试或演示LBP算法的样本数据或代码,可以帮助读者理解并实践LBP的计算过程和应用。 总之,局部二值模式(LBP)作为一种简单而有效的图像特征描述方法,因其独特的性质和广泛的适用性...

    演示如何使用 ASCII 码表中的字符和对应的十进制值进行编码和解码

    总结一下,ASCII码是计算机中字符编码的基础,它将128个不同的字符与7位二进制数对应起来,便于计算机处理文本。通过学习ASCII码,我们可以更好地理解计算机如何存储和处理文本,这对于编程和网络通信等领域的工作...

    计算机网络课程设计校验码的计算.pdf

    文档内容包含了C++语言编写的相关代码,目的是演示如何通过编程来实现校验码的计算过程。代码中使用了输入输出流(iostream,fstream),字符串流(sstream),以及标准库(stdio.h,stdlib.h,math.h)等,展示了...

    多种进制转换及成十进制显示

    这段代码展示了如何将BX寄存器中的16位二进制数转换为ASCII码,并显示为二进制形式。 2. **十进制转换** ```assembly DISPBXD PROC NEAR MOV SI, 10 XOR CX, CX MOV AX, BX NEXT: MOV DX, 10 DIV SI ...

    字节查看工具 2进制 查看

    5. **教学辅助**:在教育环境中,演示编译过程,帮助学生理解如何将源代码转化为机器可执行的二进制指令。 总的来说,"字节查看工具 2进制 查看"是编程、软件开发、逆向工程和教学中不可或缺的工具,它提供了一种...

    二进制代码转换:二进制代码转换如 2241,8421,gray..-matlab开发

    在提供的`code_conv1.zip`压缩包中,可能包含了MATLAB代码示例,用于演示如何实现这些二进制代码转换。解压并打开这些文件,你可以看到具体如何使用MATLAB的函数和命令进行实际操作。这些代码可能包括了自定义函数,...

    C/C++十六进制异或运算

    此外,异或运算也常用于数据校验,如CRC(循环冗余校验),它通过异或计算出一个校验码,附加到数据后面,接收方同样进行异或计算,如果计算结果为0,则数据传输无误。 在提供的文件列表中,"www.pudn.com.txt"可能...

    Translate_ASCII.rar_ascii to english _十六进制_文字进制_查询

    在描述中提到的“文字进制”,可能是指用各种进制(如二进制、八进制、十进制、十六进制等)来表示ASCII码的过程。这对于理解计算机如何存储和处理字符信息非常重要。例如,ASCII码48(十进制)或0x30(十六进制)...

    8583报文解析详细过程

    本文档旨在详细介绍8583报文解析的过程,涵盖二进制、十进制、十六进制之间的转换、报文结构、报文头、报文长度、BCD码、报文样例等知识点。 数字系统 在计算机科学中,数字系统是指计算机内部使用的数字表示方法...

    西门子PLC例程-CRC码计算程序.zip

    这个压缩包“西门子PLC例程-CRC码计算程序.zip”可能包含了一个或多个示例程序,用于演示如何在西门子PLC系统中实现CRC码的计算。 CRC码的工作原理基于多项式除法,其基本思想是附加一个校验位序列到原始数据后面,...

    VB中文转十六进制 VB中文转十六进制

    在编程领域,尤其是在使用Visual ...总的来说,VB中的中文转十六进制涉及到字符编码、Unicode码点和二进制转换的知识。通过理解这些概念,开发者可以有效地处理各种编码问题,包括中文字符在不同环境下的表示和转换。

    Binary-Experiment-Program:二进制学习使用到的程序,包括二进制,实验博客位置https

    学习二进制对于计算机科学的学生和开发者至关重要,因为这有助于他们理解底层计算过程。在这个"Binary-Experiment-Program"中,可能包含了一些示例代码,用于演示如何将十进制或其他数值系统转换为二进制,以及如何...

    capl实现crc校验码计算.zip

    4. **倒序处理**:由于CRC计算过程中,数据是从低位到高位处理的,因此最终结果需要按照生成多项式的位宽倒序排列。 在CAPL中,可以使用循环和位操作来实现这个过程。以下是一个简单的CAPL代码示例,演示了CRC-16的...

Global site tag (gtag.js) - Google Analytics