「javabyte运算」java的进制算法怎么算的
本篇文章给大家谈谈javabyte运算,以及java的进制算法怎么算的对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java(byte)>>>时怎么运算的
移位操作:
左移:向左移位,符号后面的数字是移了多少位,移的位用0补齐,例如2进制数01111111左移一位后变为11111110,移位是字节操作。
右移:向右移位,符号后面的数字是移了多少位,移的位用符号位补齐,例如01111111右移一位后变为00111111,而10000000右移一位后变成11000000,因为符号位是1。
(byte)0xa22 = 2
(byte)0x722 = 28
(int)0xa22 =28 (错误)
(byte)0x72 是十进制的114, 114转换成二进制是 1110010,11100102 (位移两位)是11100,而11100转换成十进制是:28
而(int)0xa2是十进制的162,162转换成二进制是 10100010, 101000102 是101000 ,实际的值是40,不是28.
java中位运算符,(byte) 0x80 的那个,为何答案是-32
0x80 表示 128,(0x 代表 16 进制,8 * 16¹ + 0 * 16º = 128),128 的二进制是 10000000,即 2 的 7 次方。
byte 共有 8 位,表示范围是 -128 ~ 127,二进制即 10000000 ~ 01111111,第一位为符号位,1 表示负数,0 表示整数,11111111 即表示 -127,10000000 比较特殊,表示 -128。所以,0x80 本来是整数的 128,二进制 00000000000000000000000010000000 (Java 中整数4个字节32位)。(byte)0x80,将其转换为 byte,即截取最后 8 位,即 10000000,就是 byte 中的 -128。
表示右移操作,右移一位表示除以 2。(byte)0x80 2,表示将(byte)0x80右移两位,那么就是 -128 ÷ 2 ÷ 2 = -32。
Java中byte的加法
byte的范围是-128到127,超出了的部分到下一个循环里
b3比上限超出了29,所以最终是-100
PS,127+1在byte里会变成-128,所以不是直接用-128+29,而是-128+28,因为原来的数字加上1才能到-128
关于javabyte运算和java的进制算法怎么算的的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-28,除非注明,否则均为
原创文章,转载请注明出处。