代码-java 简单的位运算

问题描述

java 简单的位运算

用位运算将int i=0xaabbccdd 变成 i=0xddccbbaa,我不知道自己写的代码哪里错了,希望各位可以指出,谢谢

解决方案

Java 位运算
java 位运算
Java 中的位运算

解决方案二:

a1错了,应该是左移6位,即 <<64

解决方案三:

a3也错了,应该是左移2位,即 <<4

解决方案四:

这是用c++编写的,最简单的程序。记得负数右移,补的是符号位。

解决方案五:

t = (t1<<24)|(t2<<16)|(t3<<8)|t4
没有调试,但是思路就是这样

解决方案六:

先将byte装换成int时位扩展的高位1用&0xff变成0,再进行移位操作,
或者使用& 0xff00、& 0xff0000,对0xff也进行相应的位操作之后的再运算,
代码如下:

 package com.ice_qi;

public class Move {

    public static void main(String[] args) {
        int i = 0xaabbccdd;

        byte b1 = (byte)0xdd;
        byte b2 = (byte)0xcc;
        byte b3 = (byte)0xbb;
        byte b4 = (byte)0xaa;

        i = (b1 & 0xff)<<24 |
                (b2 & 0xff)<<16 |
                (b3 & 0xff)<<8 |
                (b4 & 0xff)<<0;

        System.out.format("%x",i);
    }
}
时间: 2024-09-19 09:12:31

代码-java 简单的位运算的相关文章

java 简单的位运算

问题描述 java 简单的位运算 int i=0xaabbccdd : byte b1=0xdd: byte b2=0xcc: byte b3=0xbb: byte b4=0xaa: 使用位运算将i变为0xddccbbaa 解决方案 Java位运算Java位运算JAVA中的位运算 解决方案二: b1是不是0xdd? b1*16^6+b2*16^4+b3*16^2+b4

java 数字处理与位运算

1.位运算 & 按位与 | 按位或^ 按位异或~ 按位取反<< 按位左移,补0>> 按位右移,新的符号位同原来的符号位>>> 按位右移,新的符号位总为0 所有的位操作符处理对象都是数字的补码! 2.小数处理 整数与整数的除法结果仍是整数,小数点会被直接舍掉. 小数转化为整数,如(int)2.9还是小数点截掉处理.% 求余运算符.若10.3%10,答案是0.3,而非整数! 3.Math.常用方法 random() 随机数,返回[0,1)区间的double值.

[大数据量]java移位运算与位运算与数据类型的存储

站在巨人的肩膀上,参考其他博客文章,汇总于此:  1G=1024M=1024K=1024BYTE=8BIT  Java数据类型的存储:(举例说明) 问:int 型的在内存中怎么存储,假设 int a=21:那么a是怎么被存到计算机里的.怎样把 a 变成二进制数. 怎么样把 a 存到 byte[]数组中? 答:int占4个字节,byte是1个字节,每个字节8位. 所以2进制的话,int最多可以表示正负一共2的32次方个数,byte则是2的8次方. e.g. int=21;在计算机中表示为00000

java位运算&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;负位运算

问题描述 java位运算>>>负位运算 请教大神 -100 >>> -1 -100 >>> 1 如何计算的 解决方案 [负数最高位为1,正数为0] [-10转换为二进制数: 10转为2进制数--> 1010 --求反--> 0101 --加1--> 0110 --补位--> 1***1 0110 -10转换为二进制数:11111111111111111111111111111111111111111111111111111111

关于农夫过河的问题, 位运算???

问题描述 农夫过河在网上找的java代码,用的是位运算,太神奇了,完全看不懂,耗一天了,只能到这来求助了.packagecom.itheima.test;importjava.util.LinkedList;publicclassTest17{int[]route=newint[16];intnongfu(intlocation){if((location&0x08)!=0)return1;elsereturn0;}intlang(intlocation){if((location&0x0

关于PHP位运算的简单权限设计

本篇文章是对PHP位运算的简单权限设计进行了详细的分析介绍,需要的朋友参考下   1.写在最前面最近想写一个简单的关于权限处理的东西,之前我也了解过用二进制数的位运算可以出色地完成这个 任务.关于二进制数的位运算,常见的就是"或.与.非"这三种简单运算了,当然,我也查看了下PHP手册,还有"异或.左移.右移"这三个运算.记得上初 中时数学老师就开始唠叨个不停了,在此我也不想对此运算再作额外的说明,直接进入正题. 2.如何定义权限将权限按照2的N次方来定义值,依次类推

Java千百问_03基本语法(005)_二进制是怎样做位运算的

二进制是怎样做位运算的 程序中的所有数在计算机内存中都是以二进制的形式储存的.位运算说白了,就是直接对整数在内存中的二进制位进行操作.其他运算符看这里:java种的运算符都有哪些 大部分运算流程都是先将整数转换为二进制,然后进行相应二进制操作.常见的操作有如下几种: 下面我们详细说明,运算符的优先级看这里:java运算符的优先级是怎样的 1.按位与 and 两个二进制数进行按位与操作:相同位的两个数字都为1,则为1:若有一个不为1,则为0. 例如:00101 & 11100 = 00100 通常

java-如何才能看懂别人写的位运算代码?

问题描述 如何才能看懂别人写的位运算代码? import java.awt.Color; import java.awt.Image; import java.awt.image.BufferedImage; import java.awt.image.PixelGrabber; /** * 我知道位运算是什么,怎么运算的,但我实在看不懂别人写的位运算代码,求高人指点我如何才能看懂别人写的位运算代码? * * 希望能得到详细的回答,除了将这个类的所有位运算都解释一遍,还请将位运算在java图像处

string-关于java,有哪位大神能帮忙看这代码分别是什么意思吗?

问题描述 关于java,有哪位大神能帮忙看这代码分别是什么意思吗? case StreamTokenizer.TT_NUMBER: s = Double.toString(st.nval); break; case StreamTokenizer.TT_WORD: s = st.sval; // Already a String break; default: // single character in ttype s = String.valueOf((char)st.ttype); } i