位运算判断一个数转为二进制后的第i位数上为0还是1

比如85的二进制为1010101.

w我们要求第五位二进制位数上是0还是1,那么我们可以通过位运算符的移位操作来进行

比如我们可以将85的二进制1010101与1向左移4位来做与运算

就是1010101 与 0010000做与运算,看第五位是0还是1,

得出这个结果,我们可以将结果0010000右移4位然后将结果与1进行比较即可

代码:

public class Testwei{
	public static void main(String[] args){
		int x = 85;
		System.out.println("x的第五位二进制位的数为:" + ((((x&(1<<4))>>4)==1)?"1":"0"));
	}
}

一些位运算的心得,希望大家喜欢

一个十进制转换为二进制补码,然后进行加减操作的程序可以通过以下步骤实现: 1. 将十进制转换为二进制。 2. 确定二进制位数,以便知道补码的长度。 3. 根据二进制的最高位(符号位),将正转换为补码(直接是二进制),将负转换为补码(取反加一)。 4. 使用二进制补码进行加法和减法运算。 以下是一个简单的Python示例代码,演示如何将十进制转换为二进制补码并执行加减运算: ```python def to_binary(num): return bin(num).replace("0b", "") def to_twos_complement(num, bits): if num >= 0: return to_binary(num).zfill(bits) else: # 补码计算:取反加一 twos_complement = to_binary(-num-1).zfill(bits) return twos_complement.translate(str.maketrans({'0': '1', '1': '0'})) + '1' def add_binary(a, b): return bin(int(a, 2) + int(b, 2)).replace("0b", "") def sub_binary(a, b): # 减法转为加法:a - b = a + (-b) b_twos_complement = to_twos_complement(-int(b, 2), len(b)) return add_binary(a, b_twos_complement) # 示例 decimal_number = -10 bits = 8 # 假设我们使用8位二进制 # 转换为二进制补码 binary_twos_complement = to_twos_complement(decimal_number, bits) print(f"二进制补码: {binary_twos_complement}") # 加法运算 result_addition = add_binary(binary_twos_complement, to_twos_complement(5, bits)) print(f"加法结果: {result_addition}") # 减法运算 result_subtraction = sub_binary(binary_twos_complement, to_twos_complement(5, bits)) print(f"减法结果: {result_subtraction}") ``` 这段代码首先定义了将十进制转换为二进制二进制补码的函,然后定义了二进制加法和减法函。在示例中,我们使用-10作为十进制,并且假设使用8位二进制进行运算。最后,代码打印了二进制补码以及加法和减法的结果。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值