文章目录

  • 1 二进制的符号位、原码、反码、补码、位扩展
    • 1.1 有符号数signed及其符号位S、无符号数unsigned
    • 1.2 反码与补码
    • 1.3 +0与-0
    • 1.4 位扩展
    • 1.6 signed与unsigned的相互转换
  • 2 算术移位和逻辑移位
    • 2.1 左移
    • 2.2 右移
  • 3 二进制的加法和乘法位数计算
  • 4 &和&&

写在前面:最近发现之前学的好多东西都一知半解,一方面是时间久了,另一方面也是没有定期回顾。因此写下这篇博客来监督自己查缺补漏、时常温习一些数字逻辑的基础知识。之后也会写一些其他方面的知识。若内容有任何不对或存疑处,请务必在评论区指出,纠正我的知识误区,也避免误导阅读这篇博客的网友。非常感谢!

1 二进制的符号位、原码、反码、补码、位扩展

1.1 有符号数signed及其符号位S、无符号数unsigned

有符号数signed才有符号位S(S=0表示正数,S=1表示负数),N bit有符号整数的二进制编码方式包含1 bit符号位和N-1 bit真值域,能表示的范围为-2(N-1)到+(2(N-1)-1),共2N个(-0和+0的补码相同,可以算1个数,关于这一点后面1.2部分有具体讨论),如8-bit有符号整数能表示-128到+127,共256个。
无符号数unsigned没有符号位S,N bit无符号整数的全部机器字长均表示数值位,能表示的范围为0到2N-1,共2N个。
二者的相互转换在后面写,因为需要用到补码。

1.2 反码与补码

首先,原码即前面介绍的signed包含符号位S与真值域,unsigned均为数值位
在计算机内存中,正数与负数都是以补码的形式来表示的。
对于正数(这里unsigned当做正数对待),原码=反码=补码,如unsigned或signed 4’b0011的原码为0011,反码与补码也为0011。注意unsigned 4’b1100的反码与补码也为4’b1100,不过若没特别注明是unsigned,提到的反码和补码一般默认指的是signed整数
对于负数,反码为符号位S不变,真值域的各位按位取反;补码为反码加1。如4’b1100的原码为1100,反码为1011,补码为1100。

1.3 +0与-0

以字长为4-bit的计算机为例,+0的原码为0000,反码为0000,补码为0000(正数的三者相同);-0的原码为1000,反码为1111,补码为0000。可以看出,+0和-0的原码与反码不一样,但补码是相同的,即在计算机内存里的表示形式是相同的。或许这也是计算机内存用补码表示的一个原因吧,可以消除二者的区别

数字逻辑:重要基础知识点整理(不定时更新)相关推荐

  1. java重要基础知识点_java基础知识点整理

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 java基础知识点整理1.&和&&的区别? &:逻辑与(and),运算符两边的表达式均为true时,整个结果才为true. ...

  2. 百度 java基础_java基础知识点整理

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 java基础知识点整理1.&和&&的区别? &:逻辑与(and),运算符两边的表达式均为true时,整个结果才为true. ...

  3. java基础知识点整理一

    java基础知识点整理一 引言 '''突然发觉任何一门语言的基础知识部分,都比较杂一些.如果个人经过梳理之后,知识体系系统化,可以让基础更加牢靠一些.但是还是会有一些遗忘.所以,我想把一些比较重要但是 ...

  4. 计算机二级基础知识点全部讲解,计算机二级基础知识点整理

    计算机二级基础知识点整理 第一章 数据结构与算法 算法---是一组严谨地定义运算顺序的规则 算法的基本要素---一是对数据对象的运算和操作,二是算法的控制结构 算法设计基本方法---列举法.归纳法.递 ...

  5. Java基础知识点整理(2022年最新版)

    看了网上很多关于Java基础知识点整理的文章,但是感觉都不是很好,要么不全面,要么不准确,要么排版太乱了,所以今天整理了一份Java基础知识点整理(2022年最新版),希望对大家有帮助哈~ 由于本文篇 ...

  6. mysql 存储引擎 面试_搞定PHP面试 - MySQL基础知识点整理 - 存储引擎

    MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...

  7. python基础知识整理-python爬虫基础知识点整理

    首先爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 根据我的经验,要学习Python爬虫 ...

  8. python基础知识500题_python爬虫基础知识点整理

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  9. MySQL基础知识点整理 - 存储引擎

    MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...

最新文章

  1. 机器学习与高维信息检索 - Note 3 - 逻辑回归(Logistic Regression)及相关实例
  2. TCP连接的状态转换图深度剖析
  3. 【Python】青少年蓝桥杯_每日一题_11.11_统计英文字母、空格、数字、其他字符的个数
  4. c语言计算坐标三角形面积公式,c语言计算三角形面积代码
  5. C语言quaternion(四元数)(附完整源码)
  6. mysql省市县三级互动_mysql+ajax的省市县三级联动
  7. java while等待 yeild_Java中run(), start(), join(), wait(), yield(), sleep()的使用
  8. java实现 - 树的层序遍历
  9. vue父组件、子组件,父子组件交互
  10. 去除狂人采集器添加在帖子中的广告信息
  11. ROS笔记(29) 启动Movelt!
  12. 中国大妈也不带钱包了!支付宝春节60后境外支付人数增长130%
  13. CentOS操作记录
  14. everything html修改,在HTML 5视频标签上更改源
  15. ecshop mysql 报错_ecshop数据库操作函数
  16. 手机号码正则_中国大陆手机号码的正则表达式总结ChinaMobilePhoneNumberRegex
  17. Java 定时任务@Scheduled使用
  18. c语言程序输出三角,C语言小程序之输出“上三角”
  19. 3每个 Yocto 跟踪工具的基本用法(附示例)
  20. DOSBOX怎么使用 从编译到连接到执行操作全过程 + debug

热门文章

  1. 基于Arduino的智能晾衣架
  2. 荣耀v20支持html,荣耀V20支持NFC功能吗 荣耀V20支持NFC刷公交吗?
  3. 百度地图API_BMap接口的使用形式
  4. 20190915,我努力奔跑,只为追上那个曾经被寄予厚望的自己
  5. MOD13Q1数据最大合成NDVI数据
  6. 计算机二级题 张东明论文修改,计算机二级第十四套word题目要求
  7. 搜狗 linux 五笔输入法,Ubuntu下安装搜狗、谷歌、五笔等输入法
  8. Web 挖掘技术总结 (参考太多,都没列出来)
  9. python四叶玫瑰注意点_四叶玫瑰的建立
  10. 【python】求matrix矩阵中“1“能够围成最大的平行四边形的面积