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编写代码输出右移到左移
文章分享:https://www.cdcxhl.com/article10/ddeiido.html

成都网站建设公司_创新互联,为您提供网站策划品牌网站制作企业建站静态网站定制网站外贸网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设