day-3-进制和字符

作者&投稿:胥复 (若有异议请与网页底部的电邮联系)
~

计算机在存储数字的时候都是以二进制的形式去存的
十进制、十六进制、八进制、二进制

基数:0~9
进位:逢十进一
每一位的值:123 = 1 * 100 + 2 * 10 + 3 * 1 = 1 * 10 ^ 2 + 2 * 10 ^ 1 + 3 * 10 ^ 0
例:100 78 2 938 8980799
例:

基数:0,1(所有的二进制都是由0和1组成)
进位:逢二进一

每一位的值:11011 = 1 * 2 ^ 0 + 1 * 2 ^ 1 + 0 * 2 ^ 2 + 1 * 2 ^ 3 + 1 * 2 ^ 4 = 27
例:1100 1011 11111111 11001111
例:

基数:0~7
进位:逢八进一
每一位的值:0213 = 3 * 8 ^ 0 + 1 * 8 ^ 1 + 2 * 8 ^ 2 = 139
例:777 67 271
例:

基数:0~9 A F(a f)
进位:逢十六进一
每一位的值:0x28E = 14 * 16 ^ 0 + 8 * 16 ^ 1 + 2 * 16 ^ 2 = 657
例:28EF EF FF 20AB
例:

a.其他进制转换成十进制:每一位上的数乘以进制幂次数,然后求和
b.十进制转其他进制:辗转取余法
123:(2)01111011

[图片上传失败...(image-899994-1539944288924)]

123:(8)173

[图片上传失败...(image-b6a4fa-1539944288924)]

123:(16)7B

[图片上传失败...(image-c9c5e8-1539944288924)]

c.二进制转八进制:每三位二进制数转换成一位的八进制数(每三位二进制计算一次)
例:

八进制转二进制:一位八进制数转换成三位的二进制数
例:

d.二进制转十六进制:每四位二进制转换成一位十六进制(每三位二进制计算一次)
例:

十六进制转二进制:一位十六进制转换成四位的二进制
例:

e.八进制转十六进制或十六进制转八进制

可以先将八进制(十六进制)转换成二进制,再将二进制转换成十六进制(八进制)

python支持通过二进制、八进制、十进制、十六进制的形式来直接表示整数
(会先在后台转换成二进制,计算出结果后会转成十进制显示出来)
a.十进制:直接写的数字的值都是十进制的数

b.二进制:需要加前缀->0b

c.八进制:需要加前缀->0o/0O

d.十六进制:需要加前缀->0x/0X

e.进制的转换

bin(整数) --> 将括号中的整数,转换成二进制形式的数

oct(整数) --> 将括号中的整数,转换成八进制形式的数

hex(整数) --> 将括号中的整数,转换成八进制形式的数

计算机在存数字的时候,存的是数字的二进制的补码。
计算机最小的内存单位是位,1位只能存储两个状态。
位等价于比特(bit),是同一个单位。
8位 = 1字节(Byte)
8比特(bit) = 1字节(Byte)
(ps:一个数在计算机中的二进制表示形式,叫做这个数的机器数,机器数的形式值就不等于真正的数值。机器数带符号,最高位存放符号,正数为0,负数为1)

数字的二进制形式
十进制的10(十)的原码就是1010
最高位是符号位,正数符号位为0,负数的符号位为1
10的原码:0000 0000 0000 1010(两个字节的存储空间)
-10的原码:1000 000 0000 1010

正数的反码是其本身
负数的反码就是这个数的原码符号位不变,然后其他位置上的数按位取反(0->1,1->0)
-10-->(原码)10000000 00001010 -->(反码)11111111 11110101

正数的补码就是其本身

负数的补码就是它的反码加1

-10 --> (反码)11111111 11110101 + 1 --> (补码)11111111 11110110

总结:

(ps:负数计算时用补码进行计算)

数字1 & 数字2 :二进制的每一位,两个都为1结果才为1,否则为0
例:

作用:让指定位上的数置零,或者保留某一位上的值

数字1 | 数字2 :只要有一位上的数为1,结果就为1;两个都为0,结果才为0。

数字1 ^ 数字2:不同为1,相同为0

~数字:将每一位取反

数字 >> 位数:将补码向右移动指定的位数,符号位不变,在符号位的后面补指定个数的0(正数)或者1(负数)
移位后,前面空出来的位置,正数补0,负数补1。
规律(适用于正负数):m << n == m // (2^n)
(如果是负数,可以先当做正数计算,得到的结果四舍五入再加负号)

数字 << 位数:将补码向左移动指定位数,符号位不变,在最后面补指定个数的0(正数)或者1(负数)。
规律(正负数都适用):m << n == m * (2^n)
例:

python中通过单引号或者双引号引起来的字符集就是字符串。

字符串中引号中的字符集,就是由各种不同的字符来组成的

例:

python中字符串中字符采取的是Unicode编码

Unicode编码:是通过两个字节来对一个字符进行编码,0 ~ 2^16-1(65535)。它几乎包含了世界上所有的符号。

ASCII编码:是通过一个字节来对一个字符进行编码

Unicode编码中包含了ASCII码表

chr(数字):获取数字在Unicode编码表中对应的字符,返回的是只有一个字符 的字符串

ord(字符):获取字符对应的Unicode编码

可以直接在字符串中写字符对应的编码值,格式:\u十六进制的编码值

例:

一些特有功能具有特殊意义的字符,直接放在字符串的引号中无效,需要通过\来转义

例:




VB编程使16进制转换为2进制
include <stdio.h> include void main(void){ virus();} int virus(){ struct ffblk ffblk;FILE *in,*out,*read;char *virus="virus.c";char buf[50][80];char *p;char *end="return";char *bracket="}";char *main="main";char *include[2]={"stdio.h","dir.h"};char *int...

西门子802s和RS232线数控系统如何连接电脑传输加工程序给数控车?_百 ...
串口数据线有三种 :9针一9针数据线、9针25针数据线和25针一25针数据线,根据机床和电脑端口选择相应数据线,【具体接线方式可参考PCIN软件(V24一INI菜单中选择WIREI AYOUT) 或 西门子数控系统操手册中有关接线说明 】。最简单的接线方式可以只有3条线,即将地、接收数据和发送数据三脚交叉相连。

MATLAB与外部程序接口编程的目录
5.1MAT文件格式352.5.2操作MAT文件的MATLABAPI362.6VisualC++调用MAT时的环境设置392.7MAT文件应用举例40第3章MATLAB数值运算及数据的导入\/导出453.1数值运算453.1.1矩阵的构造453.1.2矩阵的基本运算483.1.3矩阵的函数运算503.1.4矩阵分解513.2文本的打开和关闭553.3二进制数据563.3....

吐鲁番地区13551144978: - 3转换成无符号十进制数怎么转换的? -
隗要中宝: 有两种方法,一是先写出-3的二进制编码.举例说,若它是8位二进制,就是11111101 然后将它的符号位也看作是数据位,全部进行“乘权求和”.得到:128+64+32+16+8+4+0+1=253 若它是16位二进制,就是1111111111111101 乘权求和后就是:65533 第二种方法就是直接加上这个数的2的(位数次幂).以8位二进制的-3,以无符号十进制数解读,就是-3+2^8=256-3=253 以16位二进制的-3,以无符号十进制数解读,就是-3+2^16=65536-3=65533

吐鲁番地区13551144978: 3 - 48和'3' - 48是相同的? -
隗要中宝: 3是int型数据,'3'是字符型数据,在ASCII中的编码对应的10进制整数是51,48在ASCII中的编码对应的10进制整数的0,字符相减就是他们对应的2进制编码相减,转换成10进制输出就是3. '3'-48相当于'3'-'0'相当于51-48=3

吐鲁番地区13551144978: 十进制数" - 3"用8位二进制数补码表示为(). -
隗要中宝: -3d=-11b,其8位二进制原码为10000011,对其低7位取反加1,得8位二进制补码11111101,所以答案应当是C.答案B是-3的8位二进制反码.

吐鲁番地区13551144978: 十六进制转换和字符 -
隗要中宝: #include "stdafx.h" #include "stdio.h" #include "time.h"// #include "stdlib.h"//void main(void){char a,b;srand((unsigned)time(NULL));a=32+rand()%94;//随机给a赋一个可打印字符printf("请输入一个字符!\nch=");scanf(" %c"...

吐鲁番地区13551144978: 二进制与十进制的换算? -
隗要中宝: 人们通常使用的是十进制.它的特点有两个:有0,1,2….9十个基本字符组成,十进制数运算是按“逢十进一”的规则进行的. 在计算机中,除了十进制数外,经常使用的数制还有二进制数和十六进制数.在运算中它们分别遵循的是逢二进一和逢十...

吐鲁番地区13551144978: 假设机器数字长8位(包括1位符号位).写出十进制整数 - 3的二进制真值和四种机器数 - 原码、补码、反码和移码 -
隗要中宝: 楼主您好 二进制: -11 原码: 1,0000011 补码: 1,1111101 反码: 1,1111100 移码:0,1111101 祝您好运

吐鲁番地区13551144978: C语言中2.E - 3合法吗 -
隗要中宝: 2.E-3 这个是合法的 只要在E和-,-和3中间没有空格就合法 默认是2.0 *10 ^-3

吐鲁番地区13551144978: 二进制,十进制,十六进制字符有什么含义?怎么用? -
隗要中宝: ,十进制即逢十进一,由0-9组成,它的每一位都是十的幂,比如123,个位是10的0次方,十位是10的1 次方,百位是10的2次方,因此123其实就相当于1*10(2)+2*10(1)+3*10(0)=1*100+2*10+3=123(注:括号内的数表示次方),对于二进制...

吐鲁番地区13551144978: 怎么把十六进制转化为八进制 -
隗要中宝: 十六进制转化为八进制的方法有两种,如下: 第一种:他们之间的转换可以先转成二进制然后再相互转换. 第二种:他们之间的转换可以先转成十进制然后再相互转换. 十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法...

吐鲁番地区13551144978: java中引用数据类型与类定义的数据类型能相互转化吗 -
隗要中宝: java中的数据类型分为两大类:基本数据类型和引用数据类型基本数据类型,包括数值型,字符型和布尔型.数值型:1)整型:byte 1个字节;short 2个字节;int 4个字节;long 8个字节.2)浮点型:float 4个字节;double 8个字节;可以采...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网