十进制转二进制:

例:十进制(5)---->二进制(00000101)

将整数除二取余,继续用除二的结果除二取余,最后将结果从下往上连接起来,不足八位,前面填0

二进制转十进制

例:二进制(00000101 )---->转十进制(5)

1*2^2+1*2^0 = 4+1 = 5;二进制第一位为符号位(0:正数,1:负数),值为  从符号位之后,2进制  2^(位置-1)之和 位置从右到左数起

八进制转十进制 同理:为 8进制  8^(位置-1)之和

按位与 "&"

例:5&8 => 0   "&"符号的原理是:将两个数字转换成二进制,然后比较他们对应位置上的值是否相同,如果两个都是1则取1,否则都为0,得到最终结果二进制值,最后转换成十进制值

首先将他们分别转换成二进制,得到:

5的二进制:00000101

8的二进制:00001000

5&8后得   :00000000  ------>转换成十进制之后就是0 , 所以5&8的结果为0

按位或 "|"

例:5|8 => 13   "&"符号的原理是:将两个数字转换成二进制,然后比较他们对应位置上的值是否相同,如果两个都是0才取0,否则都为1,得到最终结果二进制值,最后转换成十进制值

首先将他们分别转换成二进制,得到:

5的二进制:00000101

8的二进制:00001000

5|8后得   : 00001101  ------>转换成十进制之后就是13 , 所以5|8的结果为13

按位取反 "~"

例:~5 => -6   ~-5 => 4  "~"符号的原理是:正数:将数字转换成二进制后取反,然后在二进制符号位之后再次取反后加1得到最终结果二进制值,最后转换成十进制值;负数:将数字转换成二进制后取反,然后在二进制符号位之后先加1再次取反得到最终结果二进制值,最后转换成十进制值

正数按位取反于负数按位取反:~5和~-5

5的二进制:00000101

-5的二进制:10000101

~5---->00000101 ---->取反---->11111010  -----> 符号位后取反---->10000101---->符号位后面加1---->10000110     转换成十进制之后就是-6 , 所以~5的结果为-6

~-5 =>4

-5的二进制:10000101

~-5---->10000101 ---->取反---->01111010---->符号位后面加1---->01111011  -----> 符号位后取反---->00000100    转换成十进制之后就是4 , 所以~-5的结果为4

按位&按位|按位~的详解的更多相关文章

  1. MyEclipse *的安装步骤和破解(32位和64位皆适用)(图文详解)

    不多说,直接上干货! MyEclipse *的下载, 见 http://www.cnblogs.com/zlslch/p/5658195.html 简单说下, MyEclipse自己会带一个JDK,它 ...

  2. 位运算,算术、逻辑运算详解-java篇

    /** * 功能: * 位运算符,原码.反码.补码规则: * 1.二进制的最高位是符号位:0表示正数,1表示负数 * 2.正数的原码.反码.补码都一样 * 3.负数的反码=它的原码符号位不变,其他位取 ...

  3. STM32-24位AD7799驱动之手册代码详解,支持模拟SPI和硬件SPI

    1.AD7799介绍 AD7799结构图如下所示: 其中REFIN参考电压建议为2.5V, REFIN电压低于0.1V时,则差分输入ad值就无法检测了,如下图所示: 注意: 如果REG_CONFIG的 ...

  4. SQL Server时间粒度系列----第8节位运算以及设置日历数据表节假日标志详解

    本文目录列表: 1.位运算 2.设置日历数据表节假日标志 3.总结语 4.参考清单列表   位运算   SQL Server支持的按位运算符有三个,分别为:按位与(&).按位或(|).按位异或 ...

  5. TCP/IP详解学习笔记 这位仁兄写得太好了

      TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣 ...

  6. M1卡区块控制位详解

    M1卡区块控制位详解 Mifare 1S50/Mifare 1S70 每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取 控制.存取控制为4个字节,共32位,扇区中的每个块(包括 ...

  7. Linux 权限位详解

    1. Linux 权限位 对于权限,有点绕,因为文件的权限和目录的权限是有一些区别的. 在Linux中,有5种权限,分别是,r.w.x.s.t. 可读权限:r 可写权限:w 可执行权限:x Setui ...

  8. [No0000154]详解为什么32位系统只能用4G内存.

    既然是详解, 就从最基础的讲起了. 或者1来存储数据的, 所以Bit实际上可以看成存放1个二进制数字的1个位置.也就是说bit只有2种值, 0 或者 1, 所以1个bit能存放1个布尔类型的值(boo ...

  9. BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

    转自:https://blog.csdn.net/ochangwen/article/details/51531866 一.简介 Java在java.math包中提供的API类BigDecimal,用 ...

  10. TCP/IP详解学习笔记 这位仁兄写得太好了.(转载)

    TCP/IP详解学习笔记   这位仁兄写得太好了   TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/20444 ...

随机推荐

  1. git bash的使用

    一.创建本地版本控制仓库 cd e:   进入e盘 cd gitspace 进入gitspace文件夹 git init 将E:\gitspace初始化为本地版本控制仓库 Initialized em ...

  2. C++之输入输出流和文件传输流

    1.流的控制 iomanip          在使用格式化I/O时应包含此头文件.    stdiostream   用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序 2.类 ...

  3. TFS独占签出代码

    最近发现微软给我们提供了免费的TFS,地址:http://tfs.visualstudio.com/, 就注册了一个,但是我发现没办法独占签出. 在公司里,TFS有服务端,所以很好设置,但是注册微软的 ...

  4. py-day1简单使用方法及语法使用详解

    一.python入门 1.python的标准格式 创建python文件以.py结尾 如:vi hello.py #!/usr/bin/env python #-*- coding:utf-8 -*- ...

  5. 【旧文章搬运】从XP到Win7看Windows对象管理的变化(概述)

    原文发表于百度空间,2010-08-01========================================================================== 今天花了一 ...

  6. OpenWrt路由器通过iPhone有线共享网络上网

    2018年4月更新: 我自己的手机在openwrt上网速很慢,在电脑上又很快.应该不是被限速了,但是没找到原因. 三大运营商在学校争客户,手机卡开出了校内无限流量的条件.很开心,之前准备到东北大学的时 ...

  7. 5-1条件运算符 & 5-2

    三目运算符 新建类: ConditionDemo 用三目运算符: package com.imooc.operator; public class ConditionDemo { public sta ...

  8. org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save()

    org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before ...

  9. cocos2dx-lua绑定之代码编辑器

    转自:http://blog.csdn.net/wtyqm/article/details/9346863 享受脚本语言灵活.更新方便.免于编译的好处,但也不能忍受离开那些方便的IDE特性(跳转.自动 ...

  10. Unity3D脚本:更改脚本和类名,且不破坏现有脚本引用的方法

    Unity开发过程中,难免遇到需要修改类名(以及对应脚本名)的时候,但如果草率地在MonoDevelop里把类名直接改掉,会破坏现有场景以 及Project Assets中所有引用该脚本的链接,届时还 ...