首页 > 其他分享 >9.26博客(动手动脑)

9.26博客(动手动脑)

时间:2024-09-28 10:03:52浏览次数:1  
标签:反码 9.26 动脑 补码 博客 binaryString 正数 原码 printBinary

阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。

原码:在计算机中,用二进制表示数时,最高位是符号位(0表示正数,1表示负数),其余位表示数的绝对值。例如,5的原码是00000101,-5的原码是10000101。
反码:对于正数,反码与原码相同;对于负数,反码是将原码除符号位以外的所有位取反。例如,5的反码是00000101,-5的反码是11111010。
补码:对于正数,补码与原码相同;对于负数,补码是反码加1。例如,5的补码是00000101,-5的补码是11111011。

public class BitwiseOperations {
public static void main(String[] args) {
int positiveNumber = 5; // 正数
int negativeNumber = -5; // 负数

    // 打印原码、反码、补码
    System.out.println("正数的原码、反码、补码(以二进制表示):");
    printBinary(positiveNumber, "原码");
    printBinary(~positiveNumber & 0xFFFFFFFF, "反码(按位取反后与0xFFFFFFFF相与)");
    printBinary(positiveNumber, "补码(正数补码与原码相同)")
    System.out.println("\n负数的原码、反码、补码(以二进制表示):");
    printBinary(negativeNumber, "原码(直接输出为补码形式,但理解为原码输入)");
    printBinary(~negativeNumber & 0xFFFFFFFF, "反码(按位取反后与0xFFFFFFFF相与)");
    printBinary(negativeNumber, "补码");

    // 位操作示例
    System.out.println("\n位操作示例:");
    System.out.println("正数左移一位:" + (positiveNumber << 1));
    System.out.println("负数左移一位:" + (negativeNumber << 1));
    System.out.println("正数右移一位:" + (positiveNumber >> 1));
    System.out.println("负数右移一位:" + (negativeNumber >> 1));
}

// 打印整数的二进制表示
private static void printBinary(int number, String description) {
    String binaryString = Integer.toBinaryString(number);
    if (number < 0){
        binaryString = binaryString.substring(binaryString.length() - 31); // 取32位中的低31位(去掉符号位前的补零)
        binaryString = "1" + binaryString; // 加上符号位
    }
    System.out.printf("%s: %32s\n", description, binaryString);
}

}

标签:反码,9.26,动脑,补码,博客,binaryString,正数,原码,printBinary
From: https://www.cnblogs.com/bixi/p/18437040

相关文章

  • 动手动脑动手实验
    (1)枚举类型是引用类型!枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。可以使用“”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“”和equals()方法执行的结果是等价的。(2)(3)(4)在Java中,变量的“同名变量的屏......
  • 动手动脑01
    动手动脑01重新编写java测试00PlaninformationpublicclassPlanInformation{//变量id为整型,表示日报流水号,依次加一。//变量planid为字符串类型String,表示产品生产批次号(例如:2312-110,有8位字符组成,前四位表示年月,后三位表示序号)。//变量planname为字符串类......
  • java动手动脑-2024/9/27
    publicclassEnumTest{publicstaticvoidmain(String[]args){Sizes=Size.SMALL;Sizet=Size.LARGE;//s和t引用同一个对象?System.out.println(s==t);////是原始数据类型吗?System.out.println(s.getClass().i......
  • 动手动脑
    根据运行结果,我们可以得出以下结论:System.out.println(s==t);//false结论:在枚举类型中,即使它们属于同一个枚举类,不同的枚举常量也是不同的对象。因此,比较操作符==在这里返回false,说明s和t引用的是不同的枚举常量。System.out.println(s.getClass().isPrimitive())......
  • 动手动脑——数据类型的转换
    1.整数大小:整数类型的位数越大,能够表示的数值范围也越大。byte和short类型适合用于节省空间的场合,而int是最常见的整数类型,因为它提供了足够的范围和较好的性能。long类型则用于需要更大数值范围的场合。2.字符表示:char类型专门用于表示Unicode字符,其大小固定为16位,可以表示任何......
  • 动手动脑——原码,反码,补码
    在计算机科学中,原码、反码和补码是数字在计算机内部表示的一种方式,主要用于二进制数的运算,特别是负数的表示和运算。原码:原码是最直接的二进制表示方法,其中最高位是符号位,0表示正数,1表示负数。剩下的位表示数值的大小。例如,十进制数5的原码表示为:00000101(假设使用5位二进制数......
  • 动手动脑——同名变量的屏蔽原则
    在Java中,变量的“同名变量的屏蔽原则”通常指的是变量作用域的问题。当在不同的作用域中定义了同名的变量时,内部作用域的变量会“屏蔽”外部作用域的变量。这意味着在内部作用域中访问该变量名时,将会访问到内部作用域中定义的变量,而不是外部作用域中的变量。下面是一个简单的示例......
  • 博客园商业化道路建议
    根据园子目前的行动,基本可以总结出:1.园子不希望加大广告投放面积和强度,保持园子的纯洁性。2.园子不希望走文章推广以及付费道路,做好技术社区。3.园子不希望牺牲普通用户权益,保障公众使用体验。基于园子的救园方案,可以看出:园子希望通过用户主动开通vip来获取收入,但是又因不想......
  • 9.25博客(动手动脑)
    四则运算importjava.util.Random;importjava.util.Scanner;publicclassArithmeticQuizGenerator{//主方法publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);Randomrandom=newRandom();//用户可以选择生成题目......
  • 【免费领51CTO博客定制咖啡杯】智能体-复古女装购物侠开发体验,追寻经典的时尚之选
    近各个大厂都在搞AI智能体,我不允许我得「博主宝贝儿们」没参加过!高举拳头,跟我一起宣誓!拿下百度文心智能体AI大师工坊,成为头号玩家!在活动期间内,完成任一赛题智能体开发,并提交智能体信息,通过审核即可领取51CTO博客周边一份!创建过程中如果遇到问题,可随时添加小助手沟通,回复暗号「AI大......