二进制 移位,取反,

Java之二进制位运算以及相关面试题 为什么要用二进制? 因为计算机从节省制造成本角度考虑,选择了二进制。因此计算机内存中一切数据都是以二进制存在的。 那么问题来了,为什么在Java中我们使用输出语句时显示在Consle窗口中的还是十进制的数呢?例如: int n = 6; System.out.println(n); 运行结果:6 。 在解释这个原因之前要先了解两个方法 ①Integer.toString() ... 阅读详情
  1. public class Test2jingji {
  2.     /**
  3.      * @param args
  4.      */
  5.     public static void main(String[] args) {
  6.         // TODO Auto-generated method stub
  7.         int i = 1024 * 1024 -9 ;
  8.         String is = Integer.toBinaryString(i);
  9.         System.out.println(is);
  10.         int j = i0x0000ffff;
  11.         is = Integer.toBinaryString(j);
  12.         System.out.println(is);
  13.         int k = i0xffff0000;
  14.         is = Integer.toBinaryString(k);
  15.         System.out.println(is);
  16.         int l = k>>16;
  17.         is = Integer.toBinaryString(l);
  18.         System.out.println(is);
  19.         int m  = ~i;
  20.         is = Integer.toBinaryString(m);
  21.         System.out.println(is);
  22.         
  23.         int jiguo = ~(j + l);
  24.         is = Integer.toBinaryString(jiguo);
  25.         System.out.println(is);
  26.         
  27.         int jishu = new Test2jingji().jishuan(i);
  28.         is = Integer.toBinaryString(jishu);
  29.         System.out.println(is);
  30.     }
  31.     
  32.     public int jishuan(int i)
  33.     //比如i是一个三十二位的数,用一条语句,把他的低十六和高十六相加再取反
  34.     {
  35.         return ~((i0x0000ffff) + ((i0xffff0000)>>16));
  36.         //一定要括号 + 运算比>>16优先
  37.     }
  38. }

 

结果:

11111111111111110111
1111111111110111
11110000000000000000
1111
11111111111100000000000000001000
11111111111111101111111111111001
11111111111111101111111111111001

无符号右移   &  带符号右移

举个例子吧~~
-17
二进制表示为11101111
无符号右移2位  -17>>>2 二进制表示为00111011
带符号右移2位  -17>>2   二进制表示为11111011
C语言用位运算构建特定的二进制数 用位运算构建特定的二进制数寄存器操作需要给特定位给特定值使用移位获取特定位为1的二进制数结合位取反获取特定位为0的二进制数 寄存器操作需要给特定位给特定值 (1)对寄存器特定位进行置1或者清0或者取反,关键性的难点在于要事先构建一个特别的数,这个数和原来的值进行位与、位或、位异或等操作,即可达到我们对寄存器操作的要求。 (2)自己写代码用位操作符号(主要是移位和位取反)来构建这个特定的二进制数。 使用移位获取特定位为1的二进制数 (1)最简单的就是用移位来获取一个特定位为1的二进制数。譬如我们需要一个bit 阅读详情

相关推荐

BK7238(XH-WB3S)固件烧录实战:从AT固件选择到稳定下载全解析

本文详细解析了BK7238(XH-WB3S)模组固件烧录的全过程,从AT固件版本选择到稳定下载的实战技巧。重点介绍了烧录前的准备工作、硬件连接的正确姿势、烧录软件的实战技巧以及疑难问题排查指南,帮助开发者高效完成BK7238模组的固件烧录。

weixin_29159441的博客 248

二进制取反运算

总结一下,有点疑惑。 目录 1、关于二进制表示 1、正数补码 2、负数补码 3、取反运算 1、关于二进制表示 这里有几个概念,关于原码、补码和反码 补码:在计算机系统中,数值一律用补码来表示(存储) (正数的补码是其原码。例如十进制数8,其二进制原码表示为00001000,则其补码即为0000 1000。最高位是符号位,这里0000 1000标红的0是符号位,0表示是正数,如果是1的话就表示负数,例如1000 1000就表示-8。) 不知道大家有没有疑惑128明明可以表示为1000000

zmy9forever的博客 2万+

华为云Stack的学习(三)

LVS是四层负载均衡,建立在OSI模型的传输层之上,所以效率非常高。NAT模式的转发主要通过修改IP地址(位于OSI模型的第三层网络层)实现转发。DR模式的转发主要通过修改MAC地址(位于OSI模型的第二层数据链路层)实现转发。云服务框架中使用的DR模式。域名解析服务器分为管理侧(OM)和租户侧(Tenant)**DNS-OM:**作为云服务的本地DNS服务器,为云服务提供域名解析服务,并代理公网域名的解析。

Ciyaso的博客 8562

二进制移位运算

移位运算符是位操作运算符的一种。移位运算符可以在二进制的基础上对数字进行平移。按照平移的方向和填充数字。 左移:将目标数转换为二进制,把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。 语法: 目标数 << 移位数 例如:28——>0001 1100(28)——0011 1000(56) 数学意义:在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。 右移:将目标数转换为二进制,把所有的数字向右移动对应位移位数,

qq_58182152的博客 5743

STM32CubeMX | 38-使用硬件SPI驱动以太网模块(W5500)

本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件SPI外设与以W5500通信,驱动以太网模块。 1. 准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi): W5500以太网模块 这里我使用常见的以太网模块W5500: W5500官网 http://www.w5500.cn/ W5500中文手册 iEthernet W5500 Datasheet 软件准备 需要安装好Keil - MDK及芯片对应的包,以

Mculover666的博客(嵌入式) 7388

1篇2章1节:在 Mac 上安装 Python,从环境检查到工具配置的完整指南

Python 是当今最流行的高级编程语言之一,广泛应用于数据分析、人工智能、自动化脚本和 Web 开发。虽然 macOS 曾自带 Python,但从 macOS 12.3 开始,系统不再默认提供可直接使用的版本,因此需要手动安装。本文将详细讲解如何在 Mac 上安装最新版本的 Python,如何验证安装是否成功,以及如何配置 IDLE 和 Python Launcher 等工具,为日常开发和学习打下坚实基础。即便你是完全的新手,也能按步骤完成环境搭建。

MD Code 848

二进制中的相反数

相反数的本质是两数相加等于 0,1 加上 1 的相反数-1 永远等于 0。

程序猿的日常笔记 1904

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

一、    在我使用rosdep install teb_local_planner去安装teb_local_planner的时候,报错:Command ‘rosdep’ not found, but can be installed with:sudo apt install python3-rosdep2    我花大半个月好不容易建立起的一系列ROS环境,被python3-rosdep2这条万恶的语句连同ROS一起给我删了。。。悲伤来的那么猝不及防    随着ROS版本的迭代,相关资料很多都不再适用

慕羽★的博客 3806

二进制取反

取反,是Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1。 概念 编辑 补码的规定如下: 对正数来说,最高位为0,其余各位代表数值本身(以二进制表示),如+42的补码为00101010。   对负数而言,把该数绝对值的补码按位取反,然后对整个数...

测试0901-1 6824

YOLOv13改进策略【Backbone/轻量化】| 替换骨干网络 CVPR-2024 StarNet,超级精简高效的轻量化模块

本文记录的是。StarNet设计简洁,没有复杂的设计和精细调整的超参数,仅是一个 4 阶段的分层架构。并且其中能够在低维空间计算的同时考虑极高维的特征这一特性,进而提高模型精度。本文在替换骨干网络中配置了原论文中的starnet_s1starnet_s2starnet_s3和starnet_s4七种模型,以满足不同的需求。

Limiiiing的博客 669

Linux 完全卸载 Neovim 的方法:解决权限问题和清除残留文件

Neovim 没有被完全卸载的原因,可能是因为它是通过非官方方式(如手动编译或二进制包)安装的。对于这种情况,使用apt卸载命令无法删除这些文件。因此,需要手动删除和中的相关文件。建议在安装软件时,尽量使用包管理器(如apt)进行安装,以便以后能够方便地卸载。如果你不太熟悉 Linux 系统,避免手动操作系统目录,除非你非常清楚自己的操作。通过上述方法,你应该能够彻底卸载 Neovim 并重新安装。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 4941

二进制取反操作

计算二进制取反操作

2201_75882276的博客 3503

k8s问题处理

执行 kubectl api-resources 报错如下。

weixin_40548182的博客 944

修改32位2进制数的某一位

我们如果想修改二进制数中的某一位,将它修改为0或1,使用移位,取反这两个操作符,可以很方便的修改 int a = 11 //二进制为 00000000 00000000 00000000 00001011 1.想把某一位的0修改为1: /*1的32为2进制 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00001011 11的二进制 00000000 00000000 00000000 00000001 1的二

jiger的博客 1440

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

python左移位运算_python移位运算符

1,二进制方式>>> bin( 1)'0b1'>>> bin( 10)'0b1010'>>> a =0b10>>>a2>>>2,移位运算符( >> << ): 箭头向左就是 向左移位 反正 箭头向右 就是向右位移,移位针对的是二进制如,十进制的1 ---> 对应的二进制...

weixin_39950010的博客 696

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python 中的整数进行二进制按位操作

python 中整数进行二进制按位操作: 1、二进制按位 与(&)操作 b=2 & 2 # 2 b=2 & 1 # 0 2、二进制按位 或(|) b=2 | 2 # 2 b=2 | 1 # 3 3、二进制 异或(^)操作 b=2^2 # 0 b=2^1 # 3 4、二进制取反(~)操作 b=~2 # -3 b=~...

weixin_30273175的博客 768

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java 二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题

一.二进制,位运算,移位运算 1.二进制 对于原码, 反码, 补码而言, 需要注意以下几点: (1).Java中没有无符号数, 换言之, Java中的数都是有符号的; (2).二进制的最高位是符号位, 0表示正数, 1表示负数; (3).正数的原码, 反码, 补码都一样; ...

chisheyang0074的博客 200

二进制的位运算

(一)按位与& 两位全为1,结果才为1 0&0=0;0&1=0;1&0=0;1&1=1 例如:51&5 即0011 0011 & 0000 0101 =0000 0001 因此51&5=1。 特殊用法 (1)清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都是零的数值相与,结果为零。 (2)取一个数中指定位。 例如:...

L X D的博客 1002

移位操作符 and 位操作符 + 取反操作符

< 左移 >> 右移它们作用对象都是而且是对的例如:计算机中整数储存方式是【补码】7的二进制为00000000000000000000000000000111 原码、反码、补码-7的二进制为↓是符号位10000000000000000000000000000111 原码111111111111111111111111111111111000 反码 (原码除符号位,其余取反)

weixin_65994469的博客 1219

关于二进制和位移运算

这个问题让我很苦恼,我三次面试都遇到了这个问题。 1、二进制怎么写 2、实现两个数交换不用中间变量

qq_40032848的博客 496

java二进制运算

前言 在讲二进制运算之前,首先得知道原码,反码,补码的概念。举个例子。 二进制运算 & 按位逻辑与,都为1则为1,否则为0; | 按位或,都为0则为0,有一个为1则为1; ^ 异或,两个都相同为0,两个不相同为1,11=0,10=1,0^0=0 ~ 按位取反,包括符号位; << 保留符号位,其余的向左移动N位,整数和负数都是低位补0,相当于乘以2的N次方,这种方式用来做2的整数倍乘法运算效率很高。 .>> 保留符号位,其余的向右移动N位,整数高位补0,负数高位补1 . &

qq_28908085的博客 851

C语言——移位操作符与位操作符

可以在二进制的基础上对数字进行平移。移位操作符的操作数只能是整数)

2201_76016527的博客 1945

移位操作符和位操作符

移位操作符   在了解移位操作符和位操作符之前,我们需要知道一个十进制的整数是如何在计算机中存储的,以int a = 10 为例,int型占4个字节,一个字节有8位,正数十以二进制存储在这32位中,其在内存中的存储如下,为方便视图中间部分已省略。 0 0 0 . . . . . 0 1 0 1 0 <<1. 左移操作符   将这32位向左移动,后面空的位用0代替。例如:a...

不积极分子 2223

JAVA二进制.位运算.移位运算

二进制、位运算、位移运算 思考题 1、请看下面的代码段,回答a,b,c,d,e结果是多少? public static void main(String []args){ int a=1>>2; int b=-1>>2; int c=1 int d=-1 int e=3>>>2; //a,b,c,d,e结果是多少 System.out.println("a="+a);//a=0

Rick Dong 4612

c语言中的移位操作符和位操作符与结构成员访问操作符

有关c语言中的移位操作符,位操作符以及结构成员访问操作符的一些知识点,欢迎观看,欢迎点评

2401_83201682的博客 987

php移位运算

php移位运算,移位操作应用口诀,网上找到的最强PHP位移操作的文章,收藏 原网址:http://www.phpip.com/program/php/A62009905P/21834.html 原文不知是否转载,反正我这个是转载,因为觉得实在好,在网上有没有其他更好的

JohnHealy的专栏 999
上一篇: mysql 错误
下一篇: jsp上传下载组件jspsmart 下载文件时按取消时出错
ap0406708
博客等级 码龄20年 4粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值