二进制计算题

比如十进制的32 = 2*10的0次方 加上 3*10的一次方

以此类推

二进制:逢二进一

二进制(0,1)
二进制的最高位为符号位 0表负数 1为负数
正数的原码 反码 补码
都是一样的
负数的反码=它的原码符号位不变,其他位取反 0变1 1变零
负数的补码=反码加1
0的反码
补码都是0
PHP没有无符号数
计算机运算的时候都是以补码的方式运算的

举例:
-1的原码为
10000000 00000000 00000000 00000001
反码为
11111111
11111111 11111111 11111110
补码为
11111111 11111111 11111111 11111111

一个二进制字符 占用四个字节 一个字节等于8个bit
那么1的二进制表示为
00000000 00000000 00000000
00000001

PHP 位运算符号
& 按位与 两位全为1 结果为1
| 按位或 两位有一个为1 结果就为1
^ 按位异或 一个为0
一个为1 结果为1
~ 俺位取反 0->1 1->0

d emo
~2 = ?
步骤:
先找出2的补码(正数的反码 原码 补码都是同一个)
00000000 00000000
00000000 00000010
再按位取反
11111111 11111111 11111111 111111101(补码->
原码)
11111111 11111111 11111111 111111100 反码
10000000 00000000 00000000
000000011 原码
1+1*2的零次方 + 1* 2的一次方 = -3

2&3 =?
2的补码
00000000 00000000 00000000 000000010

3的补码
00000000 00000000 00000000 000000011
所以得
到补码为

00000000 00000000 00000000 000000010
正数的补码 反码 都是一样
所以
答案是2

其他的类推

PHP 移位运算符
<< 算数坐移
>>

对二进制数进行移动
运算规则:
算术右移:低位溢出,符号位不变,并且符号位补溢出的高位

算术左移:符号位不变,低位补零

demo:
$a = 1>>2
1的补码
00000000 00000000 00000000 00000001

01 溢出 在高位补符号位 00(符号位不变)
答案是0

$a = -1<<2
10000000 00000000 00000000 00000001 原码
11111111
11111111 11111111 11111110 反码
11111111 11111111 11111111 11111111 补码

11111111 11111111 11111111 11111100

11111111 11111111 11111111 11111011

10000000 00000000 00000000 00000100

-4

二进制计算题,布布扣,bubuko.com

时间: 2024-08-04 11:02:45

二进制计算题的相关文章

C#认证第一章1 题 11题

C#第一章第一题 C#认证第一章  11题

[poj2104]可持久化线段树入门题(主席树)

解题关键:离线求区间第k小,主席树的经典裸题: 对主席树的理解:主席树维护的是一段序列中某个数字出现的次数,所以需要预先离散化,最好使用vector的erase和unique函数,很方便:如果求整段序列的第k小,我们会想到离散化二分和线段树的做法, 而主席树只是保存了序列的前缀和,排序之后,对序列的前缀分别做线段树,具有差分的性质,因此可以求任意区间的第k小,如果主席树维护索引,只需要求出某个数字在主席树中的位置,即为sort之后v中的索引:若要求第k大,建树时反向排序即可 1 #include

旧题新做:从idy的视角看数据结构

“今天你不写总结……!!!” 额…… 还是讲我的吧.这些考试都是idy出的题. 20170121:DFS序. ST表.线段树练习 这是第一次考数据结构. Problem 1. setsum 1 second 给你一个长度为N 的整数序列,支持两种操作: • modity l r val 将区间[l,r] 中的所有数修改为val • query l r 询问区间[l,r] 所有数的和 分析:最简单的线段树,区间更改区间求和.但注意是更改,不是添改,sum与flag需同时覆盖. Problem 2.

做预解释题的一点小方法和小技巧

在JavaScript中的函数理解中预解释是一个比较难懂的话题.原理虽然简单,寥寥数言,但其内涵却有深意,精髓难懂.如何在轻松活跃的头脑中将它学会,现在针对我在学习中的一点小窍门给大家分享一下,希望能给大家一些帮助: 万事需遵循"原理"--"预解释"无节操和"this"指向:(可先看例题解析然后结合原理进行学习) (感谢蕾蕾老师给归纳的预解释无节操原理:) 如果函数传参数则先于以下执行,就相当于在函数私有作用域下var了一个变量:根据作用域原理,

hdu 2966 In case of failure kdtree模板题

问求每个点距离平方的最小的点 kd-tree模板题…… 1 #include<bits/stdc++.h> 2 #define cl(a,b) memset(a,b,sizeof(a)) 3 #define debug(x) cerr<<#x<<"=="<<(x)<<endl 4 using namespace std; 5 typedef long long ll; 6 typedef pair<int,int>

2017 计蒜之道 初赛 第一场 A、B题

A题 阿里的新游戏 题目概述: 阿里九游开放平台近日上架了一款新的益智类游戏--成三棋.成三棋是我国非常古老的一个双人棋类游戏,其棋盘如下图所示: 成三棋的棋盘上有很多条线段,只能在线段交叉点上放入棋子.我们可以用坐标系来描述棋盘: 如果一条线段上的三个交叉点都被同一玩家的棋子占据的话,则称这条线段被该玩家 成三.现在,小红和小明两人在游戏平台上下棋,其中小红的棋子是黑色的.请你帮小红计算他成三的线段数. 样例对应的棋盘如下: 输入格式 输入第一行两个整数 n,m(3 \le n, m \le

老男孩教育每日一题-2017年5月11-基础知识点: linux系统中监听端口概念是什么?

1.题目 老男孩教育每日一题-2017年5月11-基础知识点:linux系统中监听端口概念是什么? 2.参考答案 监听端口的概念涉及到网络概念与TCP状态集转化概念,可能比较复杂不便理解,可以按照下图简单进行理解? 将整个服务器操作系统比喻作为一个别墅 服务器上的每一个网卡比作是别墅中每间房间 服务器网卡上配置的IP地址比喻作为房间中每个人 而房间里面人的耳朵就好比是监听的端口 当默认采用监听0.0.0.0地址时,表示房间中的每个人都竖起耳朵等待别墅外面的人呼唤当别墅外面的用户向房间1的人呼喊时

POJ 1741 Tree(树的点分治,入门题)

Tree Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 21357   Accepted: 7006 Description Give a tree with n vertices,each edge has a length(positive integer less than 1001).Define dist(u,v)=The min distance between node u and v.Give an in

九度OJ刷题——1013:开门人和关门人

题目描述:     每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入: 测试输入的第一行给出记录的总天数N ( N> 0 ),下面列出了N天的记录.     每天的记录在第一行给出记录的条目数M (M > 0 ),下面是M行,每行的格式为 证件号码 签到时间 签离时间 其中时间按"小时:分钟:秒钟"(各占2位)给出,证件号码是长度不超过15的字符串. 输出: 对每一天的记录输出1行,即当天