重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

java编写代码输出右移 java编写代码输出右移到左移

关于JAVA右移左移问题,不知道结果为什么是这样

楼主你好!问题是这样的:

目前创新互联建站已为上千余家的企业提供了网站建设、域名、网络空间、网站托管维护、企业网站设计、梁河网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

先拿第一句来说

语句:System.out.println("000011112:" + (000011112));

中的00001111是八进制的数,能0开头的数是八进制数,而00001111用二进制表示为1001001001,数值前有22个0,一共有32位,左移2位后变为10010010,数值前有24个0,而10010010用十进制表示则为146。所以语句:System.out.println("000011112:" + (000011112));输出000011112:146。其他以0开头的数类推。但第二和第四个System.out.println()语句中的11000011是十进制的数,不能看作是二进制的也不能看作是八进制的数。楼主要看清。

用java怎么做这道题字符串右移的问题? 字符串右移n位,例如 "hello world" 右移两位 后ldhello wor

public class MoveString { public static void main(String[] args) { String str = "hello world"; int step = 2; System.out.println(moveString(str, step)); } private static String moveString(String str, final int step) { if (str == null || step 0) { return null; } int len = str.length(); return new StringBuilder(str.substring(len - step % len)).append(str.substring(0, len - step % len)).toString(); } } 追问: 我怎么看不懂是什么意思呢? 回答: 你这个向右移几位其实就相当于将字符串最后的几位补到前面去...比如说你移动两位,其实就是将"hello world"最后的两位"ld"放到最前面 String类中的substring方法 就是用来进行字符串截取的

希望采纳

Java中右移运算

将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。

操作数每右移一位,相当于该数除以2。

注:正数的原码,反码,补码一致;负数的反码是除去符号位外其余取反,负数补码是除去符号位外其余取反,末尾加1。 (二进制最左边一位是符号位)

带符号右移运算符()

将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。

无符号右移运算符()

运算符把 expression1 的各个位向右移 expression2 指定的位数。右移后左边空出的位用零来填充。移出右边的位被丢弃

-12 = -1   

-1:   原码:1000 0001  反码:1111 1110  补码:1111 1111

右移2位:1111 1111    ( 用补码操作,并用 1  补齐左边位)

再找反码:1000 0000    ( 除去左边符号位,其余取反 )

再找原码:1000 0001 = -1  ( 还是将反码末尾加1 )

-52=-2

-5:   原码:1000 0101  反码:1111 1010  补码:1111 1011

右移2位:1111 1110    ( 用补码操作,并用 1  补齐左边位)

再找反码:1000 0001    ( 除去左边符号位,其余取反 )

再找原码:1000 0010 = -2  ( 还是将反码末尾加1 )

-52=1073741822

-5:

原码:1111 1111 1111 1111 1111 1111 1111 0101

反码:1111 1111 1111 1111 1111 1111 1111 1010

补码:1111 1111 1111 1111 1111 1111 1111 1011

右移2位:0011 1111 1111 1111 1111 1111 1111 1110=1073741822

Java编程实现一个能循环地自左向右移动的动画程序。

效果图

参考代码

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MoveTextFrame extends JFrame {

JLabel jl;//文字标签

int speed=2;//移动速度

public MoveTextFrame() {

jl = new JLabel("文字动画");

jl.setForeground(Color.RED);

add(jl);

setSize(380, 100);//窗口大小

setLocationRelativeTo(null);//窗口居中

setResizable(false);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

//设置定时器, 每隔25毫秒,改变一次文字标签的位置

Timer t = new Timer(25, new ActionListener() {

public void actionPerformed(ActionEvent e) {

int x = jl.getX()+speed;//计算移动后的位置

if(x=390){//如果超过就指定像素,就重新从左边开水移动

x=-30;

}

jl.setLocation(x, jl.getY());//更新位置

//repaint();

}

});

t.start();

}

public static void main(String[] args) {

new MoveTextFrame();

}

}


分享名称:java编写代码输出右移 java编写代码输出右移到左移
分享网址:http://cqcxhl.cn/article/ddeiido.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP