首页 > 其他分享 >9.25

9.25

时间:2024-09-28 21:00:35浏览次数:9  
标签:反码 9.25 补码 System println 原码 out

今天学习了原码,补码,反码相关知识:
原码:原码是最直观的表示方法,它直接用二进制数表示一个数,包括正负号。在原码中,最高位(最左边的位)是符号位,0 表示正数,1 表示负数。其余位表示数值本身。例如,十进制数 +5 的原码表示为00000101,而 -5 的原码表示为10000101。
反码:反码主要用于表示负数。对于正数,其反码与其原码相同。对于负数,其反码是将原码除符号位外的所有位取反(0 变 1,1 变 0)。例如,十进制数-5的反码表示为11111010。
补码:补码是计算机中最常用的表示方法,用于进行二进制加法运算。对于正数,其补码与其原码相同。对于负数,其补码是其反码加 1。补码的一个重要特性是,任何数的补码加上该数本身,结果总是 0。例如,十进制数 -5 的补码表示为 11111011。
运算符为:
&:如果相对应位都是1,则结果为1,否则为0
|:如果相对应位都是 0,则结果为 0,否则为 1
^:如果相对应位值相同,则结果为0,否则为1
~:按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
<<:按位左移运算符。左操作数按位左移右操作数指定的位数。

:按位右移运算符。左操作数按位右移右操作数指定的位数。 、
测试代码为:

点击查看代码
package Bufanyuan;

public class Test1 {
    public static void main(String[] args) {
        int a = 60; /* 60 = 0011 1100 */
        int b = 13; /* 13 = 0000 1101 */
        int c = 0;
        c = a & b;       /* 12 = 0000 1100 */
        System.out.println("a & b = " + c );

        c = a | b;       /* 61 = 0011 1101 */
        System.out.println("a | b = " + c );

        c = a ^ b;       /* 49 = 0011 0001 */
        System.out.println("a ^ b = " + c );

        c = ~a;          /*-61 = 1100 0011 */
        System.out.println("~a = " + c );

        c = a << 2;     /* 240 = 1111 0000 */
        System.out.println("a << 2 = " + c );

        c = a >> 2;     /* 15 = 1111 */
        System.out.println("a >> 2  = " + c );

        c = a >>> 2;     /* 15 = 0000 1111 */
        System.out.println("a >>> 2 = " + c );
    }
}

运行结果为: a & b = 12 a | b = 61 a ^ b = 49 ~a = -61 a << 2 = 240 a >> 2 = 15 a >>> 2 = 15

Java中的整数使用补码表示。这种表示方法可以有效地处理负数,并且简化了加减运算。在补码表示中,负数的计算也变得与正数一致。

标签:反码,9.25,补码,System,println,原码,out
From: https://www.cnblogs.com/qiixunlu/p/18438399

相关文章

  • 9.25度小满一面
    1.map的底层2.unorder_map哈希表有自己实现过吗?哈希冲突3.poll和epoll和select的优缺点、4.线程同步机制是用来做什么的?5.五子棋项目问题--算法题:6.LeetCode.重排链表给定一个单链表L的头节点head,单链表L表示为: L0 →L1 →…→Ln-1 →Ln 请将其重......
  • 9.25博客(动手动脑)
    四则运算importjava.util.Random;importjava.util.Scanner;publicclassArithmeticQuizGenerator{//主方法publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);Randomrandom=newRandom();//用户可以选择生成题目......
  • 9.25每日总结 OpenFeign
    OpenFeign利用Nacos实现了服务的治理,利用RestTemplate实现了服务的远程调用。但是远程调用的代码太复杂了:而且这种调用方式,与原本的本地方法调用差异太大,编程时的体验也不统一,一会儿远程调用,一会儿本地调用。用到OpenFeign组件了。其实远程调用的关键点就在于四个:请求方式......
  • 2023.9.25 近期练习
    CF1261FXor-Set我们把\(A,B\)集合分别处理,把其拥有的区间放到字典树上,就会拆成\(O(n\logV)\)个区间。考虑其两两组合,每个区间都是形如前面若干位确定,后面\(x\)位任意。两个区间组合,就是取\(x\)更大的那个后面都是任意的,前面的若干位合并起来即可。但是这样就会有\(......
  • leetcode每日一题day15(24.9.25)——公司命名
    思路:首先如果没有相同的后缀,则无论只要不是相同的首字母交换都不会出现重复情况,如果有重复后缀,则还需多增加个不能和,首字符与另一相同后缀字串的首字符相同的字串交换。主要矛盾已经明确,则可对矛盾进行分析。首先把范围缩小到只有两种不同首字母,对于这种情况      ......
  • 2024.9.25 Python,单词替换,优美的排列 II,sort的用法前K个高频单词,广度优先搜索腐烂的橘
    1.单词替换在英语中,我们有一个叫做词根(root)的概念,可以词根后面添加其他一些词组成另一个较长的单词——我们称这个词为衍生词(derivative)。例如,词根help,跟随着继承词“ful”,可以形成新的单词“helpful”。现在,给定一个由许多词根组成的词典dictionary和......
  • 2024.9.25训练记录
    上午whk下午noip模拟T1:结论题。考场想不出来。只需要顺序做第一个1前的数。原因:考虑三个数时的情况。顺序是\((a^b)^c\)或者\(a^{(b^c)}\)。相当于,比较\(b^c\)和\(bc\)的大小。显然有:\(b,c\geq2\)时,\(b^c\geqbc\)。所以按照正常顺序做,在\(A_i\geq2\)时......
  • 9.25日总结
    单向链表单向链表是最基本的一种链表形式。每个节点包含一个数据元素和一个指向下一个节点的指针。单向链表的优点在于实现简单,插入和删除操作方便。缺点是只能从头节点开始遍历整个链表,访问效率较低。双向链表双向链表在单向链表的基础上增加了前驱节点指针,使得可以从任意......
  • 9.25
    2021csp-jT1[CSP-J2021]分糖果题目描述红太阳幼儿园有n个小朋友,你是其中之一。保证n>=2。有一天你在幼儿园的后花园里发现无穷多颗糖果,你打算拿一些糖果回去分给幼儿园的小朋友们。由于你只是个平平无奇的幼儿园小朋友,所以你的体力有限,至多只能拿R块糖回去。但是拿的太少......
  • 2024.9.25
    昨晚zph和qiuly在床上聊八卦,拖到好晚才睡着。也不知道今天我们几个怎么能准时醒的。当然我看zph没啥精神,他那比闹铃居然能放到第二遍。下次还是早点睡吧,呃呃。 农的赛季更新了,赛季回顾里zph是大部分人的卧底队友。然而我是bronya的卧底队友,我错了,但下次还是玩敖......