ToB企服应用市场:ToB评测及商务社交产业平台

标题: 运算符--原码、反码、补码 [打印本页]

作者: 光之使者    时间: 2024-3-2 02:57
标题: 运算符--原码、反码、补码
运算符--原码、反码、补码

原码:

十进制数据的二进制表现形式,最左边是符号位,0为正,1为负。
利用原码对正数进行计算是不会有问题的。
但如果是负数计算,结果就出错,实际运算的结果,跟我们预期的结果是相反的。
原码的弊端:
反码:

出现的目的:为解决原码不能计算负数的问题而出现的。
计算规则:正数的反码不变,负数的反码在原码的基础上,符号位不变,数值取反,0变1,1变0。
反码的弊端:负数运算的时候,如果结果不跨0,跟实际结果会有1的偏差。
补码:

出现的目的:为了解决负数计算时跨0的问题而出现的。
计算规则:
注意点:计算机中的存储和计算都是以补码的形式进行的。
基本数据类型

数据类型字节二进制byte类型的101个字节0000 1010short类型的102个字节0000 0000 0000 1010int类型的104个字节0000 0000 0000 0000 0000 0000 0000 1010long类型的108个字节0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1010隐式转换
  1. public class Test {
  2.     public static void main(String[] args) {
  3.         byet a = 10;//0000 1010
  4.         int b = a;//0000 0000 0000 0000 0000 0000 0000 1010
  5.         System.out.println(b);
  6.     }
  7. }
复制代码
强制转换
  1. public class Test {
  2.     public static void main(String[] args) {
  3.         int a = 300;//0000 0000 0000 0000 0000 0001 0010 1100
  4.         byet b = (byet) a;//0010 1100
  5.         System.out.println(b);//44
  6.     }
  7. }
复制代码
  1. public class Test {
  2.     public static void main(String[] args) {
  3.         int a = 200;//0000 0000 0000 0000 0000 0000 1100 1000
  4.         byet b = (byet) a;//1100 1000
  5.         System.out.println(b);//-56
  6.     }
  7. }
复制代码
其他运算符

运算符含义运算规则&逻辑与0为false,1为true|逻辑或0为false,1为true</tdtd 左移/tdtd 向左移动,地位补0/td/trtrtd >右移向右移动,高位补0或1>>>无符号右移向右移动,高位补0
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4