system+寄存器+进制转换

使用vs,qt编译代码,必须新建工程(项目),把代码加载到工程后才能编译。

用qt编译,加载代码后如果不能运行,可以尝试关闭再重启。

用<>包含系统的头文件,用“”包含自定义的头文件。

system

在C语言中需要包含头文件<stdlib.h>.

功能:在函数内部调用外部程序。

不同系统(windows,linux)的system返回值不同。

字符编码
  1. windows默认支持的中文编码为 gbk,gb312,ANSI。
  2. linux默认支持的中文编码为utf-8(unicode)。
注意:使用不符合系统要求的中文编码会导致乱码。
C语言的编译为分步编译。
  1. 预处理,将头文件展开。此步还未对语法结构进行检查。生成.i 文件。
  2. 编译,将.i 文件转化为.s 文件,生成汇编代码。
  3. 汇编,将.s文件转换为.o文件,生成目标代码(二进制),但是还不能运行。
  4. 链接:链接一些动态库等东西。
寄存器

寄存器与缓存都是在CPU内部。硬盘程序加载至内存,如果需要运算,不能在内存中直接运算,需要将数据加载至寄存器计算。

但是如果寄存器与内存不断交换数据,速率较低,所以内存是把数据给缓存,缓存与寄存器进行数据交换,运算。最后缓存将数据返回给内存。

进制
二进制转换为十进制
一个数据右边是低位,左边高位,最右边为0位。
给出一个二进制数
          1 0 1 1 
 转换成十进制的方法为:相应的位(n位)2的n次方乘以该位的数字,最终所有位上的数相加。
    1011为:1*8+0*4+1*2+1*1=11
 以此类推。
m进制转换为十进制
同样,右边为低位,第一个数为0位
    相应的位(n位)为m的n次方乘以该位数字,最终所有位上的数相加。
二进制与八进制,十六进制的转换
二进制的数从右边算起,每三个为一组,不足三个就在左边添0
    每组数进行转换
    二进制:110 011 001 101
    八进制:6   3   1    5

相反的,八进制转二进制,则每个位对于三个二进制数,不足就在左边添0.

二进制与十六进制则是一个对应4个位。方法类似。
    
八进制与十六进制的转换:先转为二进制,再继续转换。
原码反码补码

一个字节八个位,最左边为符号位。符号位为0代表正数,为1代表负数。

反码:先把原码转换为二进制数。如果是正数,则反码和原码一致,如果是负数,则在原码基础上,符号位不变,其它位取反(即0和1互换)

补码:正数的原码反码补码一样,如果是负数,补码为其反码加一。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值