输出十进制数字的二进制数的表示
程序员文章站
2022-03-08 15:04:15
...
一、代码如下:
二、分析流程
JAVA 中 int 4 字节 = 4*8 = 32 bit 32位
十:10
二:00000000000000000000000000001010(原码,即机器数)
反:11111111111111111111111111110101
补:11111111111111111111111111110110(原码的补码即负数的原码)
十:-10(负数:正数的原码取反码再加1,即原码的补码)
二:11111111111111111111111111110110
>>> 强制向右移动,优先级高于 &
0x 十六进制
0x80000000 = 10000000000000000000000000000000(二)
i=0
10000000000000000000000000000000 >>> 0 = 10000000000000000000000000000000
10000000000000000000000000000000
&11111111111111111111111111110110
---------------------------------
10000000000000000000000000000000
10000000000000000000000000000000 >>> 31 = 1
i=1
10000000000000000000000000000000 >>> 1 = 01000000000000000000000000000000
01000000000000000000000000000000
&11111111111111111111111111110110
---------------------------------
01000000000000000000000000000000
01000000000000000000000000000000 >>> 30 = 1
a & 0x80000000>>>i 取a左侧第i位,其余位均为0
(a & 0x80000000>>>i)>>>(31-i) 右移动31-i位,右移左侧补0,移动后剩余上面操作的第i位的数字,即将第i位移动到最数字末位,左侧全部为0
功能:输出十进制的二进制表达式
博文参考:
[url=http://www.cnblogs.com/100thMountain/p/5447325.html]Java打印整数的二进制表示(代码与解析)[/url]
public static void main(String[] args) {
int a = -10 ;
for(int i=0;i<32;i++){
int t = (a & 0x80000000>>>i)>>>(31-i);
System.out.print(t);
}
// String binaryString = Integer.toBinaryString(-10);
// System.out.println(binaryString);
}
二、分析流程
JAVA 中 int 4 字节 = 4*8 = 32 bit 32位
十:10
二:00000000000000000000000000001010(原码,即机器数)
反:11111111111111111111111111110101
补:11111111111111111111111111110110(原码的补码即负数的原码)
十:-10(负数:正数的原码取反码再加1,即原码的补码)
二:11111111111111111111111111110110
>>> 强制向右移动,优先级高于 &
0x 十六进制
0x80000000 = 10000000000000000000000000000000(二)
i=0
10000000000000000000000000000000 >>> 0 = 10000000000000000000000000000000
10000000000000000000000000000000
&11111111111111111111111111110110
---------------------------------
10000000000000000000000000000000
10000000000000000000000000000000 >>> 31 = 1
i=1
10000000000000000000000000000000 >>> 1 = 01000000000000000000000000000000
01000000000000000000000000000000
&11111111111111111111111111110110
---------------------------------
01000000000000000000000000000000
01000000000000000000000000000000 >>> 30 = 1
a & 0x80000000>>>i 取a左侧第i位,其余位均为0
(a & 0x80000000>>>i)>>>(31-i) 右移动31-i位,右移左侧补0,移动后剩余上面操作的第i位的数字,即将第i位移动到最数字末位,左侧全部为0
功能:输出十进制的二进制表达式
博文参考:
[url=http://www.cnblogs.com/100thMountain/p/5447325.html]Java打印整数的二进制表示(代码与解析)[/url]
上一篇: 八位二进制数转化为十进制数输出
下一篇: 十进制整数转二进制/十六进制整数
推荐阅读
-
C#实现将浮点数表示的货币数量以汉字大写形式输出的方法
-
解决Java中的强制类型转换和二进制表示问题
-
剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)
-
C#实现将浮点数表示的货币数量以汉字大写形式输出的方法
-
教你编写c语言实现输入10个数按从大到小的顺序排序输出
-
利用c语言求出0~999之间的所有“水仙花数”并输出
-
Excel2007表格中如何将一些表示概率的数字转换为百分数
-
Python输出由1,2,3,4组成的互不相同且无重复的三位数
-
IEEE 二进制浮点数的表示
-
c语言实现求解这样的6位数:SQRT(6位数)=3位数,9个数字互不相同(SQRT表示开平方)