计算机中的数制

article/2025/9/16 13:50:55

文章目录

    • 一、计算机中的各种数制
      • 1. 十进制
      • 2. 二进制
      • 3. 十六进制
    • 二、不同数制间数的转换
      • 1. 二进制和十进制数间的转换
        • (1)十进制整数转换成二进制整数
        • (2)十进制小数转换成二进制小数
      • 2. 十六进制和十进制数间的转换
        • (1)十六进制数转成十进制数
        • (2)十进制数转成十六进制数
          • 1)十进制整数转成十六进制整数
          • 2)十进制小数转成十六进制小数
      • 3. 二进制和十六进制数间的转换
        • (1)二进制数转成十六进制数
        • (2)十六进制数转成二进制数
    • 三、二进制数的计算
      • 1. 算术运算
        • (1)加法运算
        • (2)减法运算
        • (3)乘法运算
        • (4)除法运算
      • 2. 逻辑运算
        • (1)逻辑乘运算
        • (2)逻辑加运算
        • (3)逻辑非运算
        • (4)逻辑异或

数制是指数的制式,是人们利用符号计数的一种科学方法。

一、计算机中的各种数制

在计算机中常用的数制有十进制、二进制、八进制和十六进制等。

1. 十进制

十进制是我们经常用到的进位数制,它包括:0、1、2、3、4、5、6、7、8、9共十个数字符号。这十个数字符号又称为“数码”,每个数码在数中最多可有两个值的概念,一个是数字符号的数值,另一个是该数字符号的权。

举个例子,例如:十进制数34中的数码3,其本身的值为3,它的权为10^1,所以它实际代表的值是30。在数学上,数制中数码的个数定义为基数,故十进制的基数为10

任何一个十进制数都可以展开成幂级数形式,例如:

423.76 = 4*10^2 + 2*10^1 + 3*10^0 + 7*10^-1 + 6*10^-2

2. 二进制

二进制总共有01两个数码,任何二进制数都由这两个数码组成。

二进制数的基数为2,做加法时,遵循逢21的进位原则。

二进制展开成幂级数形式,如下所示:

10110.11 = 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 + 1*2^-1 + 1* 2^-2

其中,指数2^4、2^3、2^2、2^1、2^0、2^-1、2^-2为权,2为基数,其余和十进制时相同。

3. 十六进制

十六进制有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个数码,任何一个十六进制数都是由其中的一些或全部数码构成。

十六进制数的基数为16,进位计数为逢161

十六进制展开成幂级数形式,例如:

63F.B1H = 6*16^2 + 3*16^1 + F*16^0 + B*16^-1 + 1^16^-2

为了区分不同的数制,通常在被标记数后,加上B、D、H大写字母用来表示二进制、十进制和十六进制。其中十进制的D可以省略。

二、不同数制间数的转换

1. 二进制和十进制数间的转换

二进制数转换成十进制数只要把要转换数按权展开后相加即可。例如:

10110.11B = 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 + 1*2^-1 + 1* 2^-2 = 22.75

十进制数转换成二进制数的转换过程是上述转换过程的逆过程,但是十进制整数和小数转换成二进制整数和小数的方法是不同的。

(1)十进制整数转换成二进制整数

常用的方法是除2取余法,首先用2除要转换的十进制数,得到一个商和一个余数,然后继续用2除上次得到的商,直到商为0为止,最后把各次余数按最后得到的为最高位,最早得到的为最低为,依次排列起来便得到所求的二进制数。

举例说明:求出231所对应的二进制数,其竖式为:
231转换成二进制数

按照上图箭头方向将余数排列可得:231 = 11100111B

(2)十进制小数转换成二进制小数

十进制小数转换成二进制小数通常采用乘2取整法,首先用2去乘要转换的十进制小数,将乘积结果的整数部分提出来,然后继续用2去乘上次乘积的小数部分,直到所得积的小数部分为0或满足所需精度为止,最后把各次整数按最先得到的为最高位、最后得到的为最低位,依次排列起来便得到所求的二进制小数。

举例说明:把十进制小数0.6879转换为二进制小数,其解法为:
0.6879转换成二进制数

按照上图箭头方向将整数排列可得:0.6879 ≈ 0.1011B

需要注意的是:任何十进制整数都可以精确地转换成一个二进制整数,但任何十进制小数却不一定可以精确地转换成一个二进制小数。

2. 十六进制和十进制数间的转换

(1)十六进制数转成十进制数

十六进制数转换成十进制数的方法和二进制数转换成十进制数的方法类似,即把十六进制数按权展开后相加,例如:

3FEAH = 3*16^3 + 15*16^2 + 14*16^1 + 10*16^0 = 16362

(2)十进制数转成十六进制数

1)十进制整数转成十六进制整数

十进制整数转换成十六进制整数,采用的是除16取余法。和十进制转成二进制的方法类似,用16连续去除要转换的十进制整数,直到商数小于16为止,然后把各次余数按逆序排列起来所得的数,便是所求的十六进制数。

举例说明:把十进制数3901转换成十六进制数,其解法为:
3901转换成十六进制数

因此,3901 = F3DH

2)十进制小数转成十六进制小数

十进制小数转换成十六进制小数的方法是乘16取整法,即把欲转换成十六进制小数的十进制小数连续乘以16,直到所得乘积的小数部分为0或达到所需精度为止,最后把各次整数按最先得到的为最高位,最后得到的为最低位,依次排列起来便得到所求的十六进制小数。

举例说明:求0.76171875所对应的十六进制数,其解法为:
0.76171875转换成十六进制数

因此,0.76171875 = 0.C3H

3. 二进制和十六进制数间的转换

二进制和十六进制间的转换十分方便,这就是为什么人们要采用十六进制对二进制加以表达的原因了。

(1)二进制数转成十六进制数

二进制数转成十六进制数采用四位合一位法,即从二进制的小数点开始,或左或右每四位一组,不足四位以零补位,然后分别把每组用十六进制数码表示,并按序相连。

举例说明:将1101111100011.10010100B转成十六进制数,其解法为:
二进制1101111100011.10010100转成十六进制

因此,1101111100011.10010100B = 1BE3.94H

(2)十六进制数转成二进制数

转换方法是把十六进制数的每位分别用四位二进制数码表示,然后把它们连成一体。

举例说明,把十六进制数3AB.7A5转成二进制数,其解法为:
十六进制数3AB.7A5转换成二进制数

因此,3AB.7A5H = 1110101011.011110100101B

三、二进制数的计算

在计算机中,运算分为算术运算与逻辑运算两类。算术运算包括:加、减、乘、除运算;逻辑运算包括:逻辑乘、逻辑加、逻辑非、逻辑异或等。

1. 算术运算

(1)加法运算

二进制的加法法则是:

0 + 0 = 0
1 + 0 = 0 + 1 = 1
1 + 1 = 0(向邻近高位进位)
1 + 1 + 1 = 1(向邻近高位进位)

(2)减法运算

二进制的减法法则是:

0 - 0 = 0
1 - 1 = 0
1 - 0 = 1
0 - 1 = 1(向邻近高位借1当作2)

两个二进制数相减时,要先判断它们的大小,把大数作为被减数,小数作为减数,差的符号由两数关系决定。

在减法过程中要注意低位向高位借的1应当作2

(3)乘法运算

二进制乘法法则是:

0 * 0 = 0
1 * 0 = 0 * 1 = 0
1 * 1 = 1

两个二进制数相乘与两个十进制数相乘类似,可以用乘数的每一位分别去乘以被乘数,所得结果的最低位与相应乘数位对齐,最后把所有结果加起来,便得到积。

举例说明:两个四位的二进制数1101B1001B相乘,其解法为:

被乘数              1101B
乘数              X 1001B
------------------------------1101000000001101
------------------------------
乘积             1110101B

在计算机中,普遍采用部分积左移和部分积右移的方法。前者从乘法最低位向高位逐位进行,后者从乘法最高位向低位进行,其本质异曲同工。

部分积右移法采用边相乘边相加的方法,每次加被乘数或0时总要先使部分积右移,而被乘数的位置可保持不变。

(4)除法运算

除法是乘法的逆运算,二进制除法也是从被除数的最高位开始,查找出够减除数的位数,并在其最低位处上商1和完成它对除数的减法运算,然后把被除数的下一位移到余数位置上;若余数不够减除数,则上商0,并把被除数的再下一位移到余数位置上;若余数够减除数,则上商1并进行余数减除数。这样重复进行,直到全部被除数的各位都下移到余数位置上为止。

2. 逻辑运算

逻辑运算由专门的逻辑电路完成。

(1)逻辑乘运算

逻辑乘又称逻辑与,常用ʌ符号表示。逻辑乘运算法则为:

0 ʌ 0 = 0
1 ʌ 0 = 0 ʌ 1 = 0
1 ʌ 1 = 1

(2)逻辑加运算

逻辑加又称逻辑或,常用算符v表示。逻辑加的运算规则为:

0 v 0 = 0
1 v 0 = 0 v 1 = 1
1 v 1 = 1

(3)逻辑非运算

逻辑非运算又称逻辑取反,常采用-运算符表示。运算规则为:

非0 = 1
非1 = 0

(4)逻辑异或

逻辑异或又称为半加,是不考虑进位的加法,常采用算符表示。逻辑异或的运算规则为:

0 ⊕ 0 = 1 ⊕ 1 = 0
1 ⊕ 0 = 0 ⊕ 1 = 1

异或运算可用于把某数的若干位取反。异或运算还可用于乘除法运算中的符号位处理。



http://chatgpt.dhexx.cn/article/LCQjGKCT.shtml

相关文章

worklist 设备对接,pe 为例

1.部署worklist 服务,确保网路通畅。 2.在ct 机器配置服务器信息,包括ip port.aetitle,不同厂家配置方法不同。 3.更新患者列表,拉取服务器list 注意:返回列表中不能有中文 4.患者选择,查看患者详细信息 5.CT 机设置 注意&#…

Typo: In word ‘worklist‘

Typo: In word worklist 使用pycharm编辑的程序员,这条绿线对与像我这样的人来说,不能忍受,所以。。。 File>>Settting打开设置,如下图,先搜索inspections,在搜索Typo,把勾去掉 OK了&…

DICOM通讯(ACSE->DIMSE->Worklist)

下文中的worklist交互的测试数据,请在资源中下载,需要wireshark将文件打开,并且加入过滤条件ip.addr 192.168.2.193 and tcp.port 104 ,并且选择dicom协议。 1 DICOM通讯概要介绍 DICOM通讯和TCP IP的设计原理别无二致。从用户数…

List..

List的使用 test.cpp #include <iostream> #include <list> #include <vector> using namespace std; namespace std {void test_list1(){//初始化list<int> lt1;//10个5list<int> lt2(10, 5);//自己的迭代器来初始化list<int> lt3(lt2.…

dicom worklist、pacs环境搭建

dcmtk的安装和使用 OFFIS DICOM 工具包 官网&#xff1a;dicom.offis.de - DICOM Software made by OFFIS - DCMTK - DICOM Toolkit windows版本下载地址&#xff1a;https://dicom.offis.de/download/dcmtk/dcmtk366/bin/dcmtk-3.6.6-win64-dynamic.zip 部分工具包使用方法…

dcmtk在PACS开发中的应用(基础篇) 第三章 工作列表(Work List)(一)( BY 冷家锋)

觉得对您有帮助&#xff0c;欢迎打赏&#xff08;打赏码在文末&#xff09;&#xff0c;欢迎切磋。 博客不常来&#xff0c;评论不一定都能看到&#xff0c;看到了我会尽力回复&#xff08;更新于2019年7月26日&#xff09; 第三章 工作列表&#xff08;Work List&#xff09…

WorkManager

WorkManager对比AsyncTask, ThreadPool的优势&#xff1a;WorkManager里面的任务在应用退出之后还可以继续执行。AsyncTask, ThreadPool里面的任务在应用退出之后不会执行。WorkManager自动选用JobScheduler, 或是AlarmManager来实现后台任务。 使用WorkManager的一些任务示例…

【SimpleList】

list_item.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:orientation"vertical"android:l…

java dcm4che findscu实现workList通讯——客户端SCU

全网实现workList服务的,要么是基于C的DCMTK、要么是基于C#的fo-dicom。想用dcm4che实现 找了好几个月都没有一个例子。无奈只能通过DCMTK和fo-dicom 实现方式并查看dcm4che源码自己实现了。经过不懈的努力总算是实现了并实际跟设备测试成功&#xff01; 首先得先了解 DICOM wo…

GE LIGHTSPEED VCT型CT机怎样修改WORKLIST参数

一、 打开维修界面&#xff1a;点击“Service”按钮。 在弹出的service desktop界面中选Utilities----点击Utilities----点击 Shell。 在弹出的界面中直接输入命令&#xff1a;installhisris 回车。 在弹出的界面中&#xff0c;修改完worklist的网络参数后&#xff0c;点击Acce…

DICOM获取worklist患者列表抓包分析

笔者刚学习DICOM协议&#xff0c;笔者比较喜欢从最基础的二进制数据去理解整个协议 这里用到了功能强大的wireshark抓包工具 wireshark下载地址&#xff1a;Wireshark中文版下载-Wireshark(网络抓包工具)下载v3.4.7 官方最新版-西西软件下载 基础知识&#xff1a; DICOM简述…

DICOM worklist工作原理?

文章转自&#xff1a;https://zhidao.baidu.com/question/254262863.html 一、关于Worklist 在RIS与PACS的系统集成中。Wordlist的连接为其主要工作之一。Wordlist成像设备工作列表&#xff0c;它是DICOM协议中众多服务类别中的一个.它的功能是实现设备操作台与登记台之间的通…

DICOM医学图像处理:基于DCMTK工具包学习和分析worklist

背景&#xff1a; DICOM3.0协议中有介绍关于worklist的部分。简而言之&#xff0c;worklist可以看做是放射科设备从医院RIS系统中自动读取患者信息的一种“通信协议”&#xff0c;可以指存储在RIS系统中的患者数据库&#xff0c;主要包括患者的基本信息&#xff08;如年龄、性别…

【转】DICOM医学图像处理:基于DCMTK工具包学习和分析worklist

转自&#xff1a;https://blog.csdn.net/zssureqh/article/details/38775315 背景&#xff1a; DICOM3.0协议中有介绍关于worklist的部分。简而言之&#xff0c;worklist可以看做是放射科设备从医院RIS系统中自动读取患者信息的一种“通信协议”&#xff0c;可以指存储在RIS系…

数学建模之MATLAB编程

EverydayOneCat 🌈 🐱🐱🐱 🍣🍣🍣🍣🍣✖️N 🌈📖📜 🥢 🐱 🐱 「Sushi shop!」 知识点 1.下载 链接:https://pan.baidu.com/s/1DbfysOOwIoSvt8HQUw0jhw 提取码:75mz 2.基本数学运算 2.1变量与数据操作 变量定义注意事项: 变量名区分字母…

数学建模-如何用matlab画出漂亮的图(一)

1 画图基本指令 hold on :保持打开的命令关闭图形保持功能hold off: title ( xx)命名 xlabel (xx’ ) x轴标注 ylabel (xx’ ) y轴标注 figure (x) 创建图窗 hidden on 将网格设为不透明 hidden off 将网格设为透明 legend (xx)加图例 grid on加网格线 subplot (2,2.4).显示第4…

数学建模-数学规划(Matlab)

目录 一、线性规划求解 二、非线性规划问题 三、整数规划&#xff08;包括0-1规划&#xff09; 四、最大最小化模型 五、多目标规划模型 注意&#xff1a;代码文件仅供参考&#xff0c;一定不要直接用于自己的数模论文中国赛对于论文的查重要求非常严格&#xff0c;代码雷同…

【数学建模】MATLAB

MATLAB 一、基本介绍二、矩阵运算三、编程基础四、常见函数以及其他五、二维图形绘制六、三维图形绘制七、运算符八、流程控制语句九、自定义函数十、画图进阶 一、基本介绍 MATLAB 是美国MathWorks公司出品的商业数学软件&#xff0c;用于算法开发、数据可视化、数据分析以及…

【数学建模】数学建模学习1---线性规划(例题+matlab代码实现)

1 线性规划 在人们的生产实践中&#xff0c;经常会遇到如何利用现有资源来安排生产&#xff0c;以取得最大经济效益的问题。此类问题构成了运筹学的一个重要分支—数学规划&#xff0c;而线性规划(Linear Programming 简记 LP)则是数学规划的一个重要分支。自从 1947 年 G. B. …

数学建模之matlab入门篇

随着美赛的推进&#xff0c;数学建模用到matlab的越来越多&#xff0c;然而对matlab不熟悉的还很多&#xff0c;在此写下matlab基础篇&#xff0c;一是帮助没有了解过matlab的同学入门&#xff0c;二是帮助自己巩固知识。 时间紧迫&#xff0c;直接开始&#xff01;此篇文章包…