
计算机逻辑运算总结
发布日期:2021-05-08 23:21:48
浏览次数:15
分类:博客文章
本文共 620 字,大约阅读时间需要 2 分钟。
在计算机二进制中,最高位表示符号位,若为0表示正数,若为1表示负数。同时我们需要清楚知道原码、反码、补码的概念,这里请自行了解。
取非/反(~):在二进制补码中,要获取数字的负数,需反转所有位并加1。比如(~-5),5是00000101,那么-5则是:11111010 + 00000001 = 11111011,然后再取(~)是00000100,所以结果为4。若是正数,则其补码是其本身,比如(~5),5是00000101,那么直接取(~),所以结果为11111010,其实这个值就是6的补码即-6。比如如下例子:
~(-3) = 2~(-2) = 1~(-1) = 0~0 = -1~1 = -2~2 = -3由上我们可总结出:~
x = -x - 1。
左移(<<):给定数据乘以2的位数次幂。例如11<<2(11 * 2^2 = 44)
有符号右移(>>):进行向右移位后,将最左边的符号位(Most Significant Bit MSB)填充到最左边的位,这称为符号扩展,当向右移动负数时,它可以保留负号的符号。若为正数,则结果为给定数据除以2的位数次幂并舍去模。例如11>>2(11/2^2 = 2),若为负数,则结果为根据正数的结果取负数并减1,也就是(-x-1)。
无符号右移(>>>):有符号右移保留符号位,而无符号位右移则是不保留以0进行填充,也就是无符号右移主要是针对正数,此时结果和有符号右移中的数据不带符号一致。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月15日 17时52分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
数据库三个级别封锁协议
2021-05-08
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
2021-05-08
ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
2021-05-08
SLAM学习笔记-求解视觉SLAM问题
2021-05-08
程序员应该知道的97件事
2021-05-08
create-react-app路由的实现原理
2021-05-08
openstack安装(九)网络服务的安装--控制节点
2021-05-08
shell编程(六)语言编码规范之(变量)
2021-05-08
vimscript学习笔记(二)预备知识
2021-05-08
Android数据库
2021-05-08
HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
2021-05-08
STM8 GPIO模式
2021-05-08
23种设计模式一:单例模式
2021-05-08
Qt中的析构函数
2021-05-08
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
2021-05-08
【单片机开发】智能小车工程(经验总结)
2021-05-08
【单片机开发】基于stm32的掌上游戏机设计 (项目规划)
2021-05-08
C++&&STL
2021-05-08
微信js-sdk使用简述(分享,扫码功能等)
2021-05-08