目录

前言

1.进制转换

2.数值数据的表示

3.计算机的码制


前言

1.《MSP430单片机应用基础与实践》(华中科技大学出版社)-第0章-计算机的基础知识

2.B站视频视频总结

3.自己

(本文章作备忘录使用)


内容(概要)

1.进制转换

作为一名”勤快“少年,我自然是:


2.数值数据的表示

1.储存单位

计算机的数据是以二进制形式存在的,所以它的储存单位也与二进制有关

储存单位:位bit,b,是数据储存的最小单位,表示一位二进制信息

字节Byte,B,是信息储存的基本单位,1B由8位二进制数字组成,1B=8b

2.有符号的二进制数

计算机中,无符号位和有符号位的取值范围区别_HD243608836的博客-CSDN博客_符号位

char      8bit  1Byte       2^8=256

C语言各数据类型大小和取值范围_画船听雨眠-CSDN博客_c语言数据类型范围

十进制数有正数和负数之分,二进制数也有正数和负数之分。带有正、负号的二进制数称为真值,如+1101001、-1001011就是真值。为了方便运算,在计算机中约定:在有符号数的前面增加 1 位符号位,用“0”表示正号,用“1”表示负号。这种在计算机中用 0 和 1 表示正负号的数称为机器数。目前常用的机器数编码方法有原码、反码和补码三种。(哈哈,让我想起了数电)
1)原码
正数的符号位用 0 表示,负数的符号位用 1 表示,其余数位表示数值本身。常用[X]原表示X的原码。

在8 位二进制数中,给出十进制数+52 和-52 的原码表示
[+52]原 = 0011 0100
[-52]原  = 1011 0100 
数值位相同,符号位不同

原码表示简单易懂,在计算机中常用于实现乘除运算,但加减运算不方便。例如,遇到两个异号数相加或者两个同号数相减,就要做减法。为了简化运算器的复杂性,提高速度,需要将减法运算转变为加法运算,其优势是在设计电子器件时,只需要设计加法器,不需要再单独设计减法器。因此人们引入了反码表示和补码表示。(msp430有乘法器)

2)反码
正数的反码表示与原码表示相同,最高位为符号位,用0 表示正数,其余各位为数值位。而负数的反码表示,是在原码的基础上保持符号位不变,其他各位按位取反得到的。常用[X]反 表示 X 的反码。

在 8 位二进制数中,给出十进制数+25 和-25 的反码表示。
[+ 25]反 =[+ 25]原= 0001 1001B(B表示二进制)
[-25]反  =                 1110  0110

3)补码
正数的补码表示与其原码相同,即最高位为符号位,用0表示正数,其余各位为数值位。而负数的补码表示是在原码的基础上保持符号位不变,其他各数值位按位取反,然后在最低位加 1 运算得到的。常用[X]补表示X的补码。

3.实数的表示

4.进位与溢出

(51单片机)看到的较为巧妙给的寄存器赋值方法:

注意:第写法有BUG!!

921600>65535,溢出了

关于int、short int、long int、long long 的区别_Adrianna的专栏-CSDN博客

其中一段在标准中,并没有规定long一定要比int长,也没有规定short要比int短。
标准是这么说的:长整型至少和整型一样长,整型至少和短整型一样长。
这个的规则同样适用于浮点型long double至少和double一样长,double至少和float一样长。
至于如何实现要看编译器厂商.

应该这样写:

要点:unsigned int ---> unsigned char  int到char截断

解释:

int是4个字节
          char是1个字节,
          把int赋值给char,就要丢失高3个字节的内容,也就是截断,
          如果你能确定int的内容只有低位一个字节,int不是可以强制转换

(0-255)unsigned char

int i=97;
char c;
c=(char)i; //不推荐这么用

要点:

unsigned int tmp;T0RH = (unsigned char)(tmp>>8);
T0RL = (unsigned char)(tmp);

>>对位操作

51可以对寄存器按位赋值,如P0^1=1,但msp430不可以,要对整个寄存器全部重新赋值,只改变需要的位,其他位不变,要注意的是头文件中定义了每位数值的常量。

在引用的头文件右键

这样使用时就容易多了,不用一位一位的自己写了,使用位运算

     P5DIR  = P5DIR |BIT4;//打开VCCP5OUT  =P5OUT| BIT4;

C语言位运算

位运算(二):8bit数据指定位置0或置1操作_XHfight的博客-CSDN博客

位操作---置位(置1)、清除和取反_chengwei1128的博客-CSDN博客

C语言位操作_无界编程-CSDN博客(嵌入式)

& 按位与
| 按位或
^ 按位异或
~按位取反

//某一位1
P5DIR  = P5DIR |BIT4;
//某一位0
ADC12CTL0 &= ~ADC12ENC;
//某一位取反
P5OUT ^= BIT4;

注意观察,0x0001u,u是什么意思?

首先,前面加0x或者0X表示这个数的表示形式是16位
       其次,末尾加u表示无符号

溢出

CY 位是进位位,用来表示本次无符号数运算结果的溢出。由于无符号数的最高有效位只有数位意义而无符号意义,所以该位所产生的进位应该是本次运算结果的实际进位值。
所以说:进位位 CY 是在给定二进制数的位数范围内,代表了本次运算结果的溢出情况。另一方面,它所保存的进位值有时也是有用的。例如,双字长运算时,可以利用进位值把低位字的进位计入高位字。
OV 位表示溢出。溢出位是用来表示带符号数的运算结果超出有限字长的表示范围的标志。它是根据两个操作数的符号及其变化来设置的。例如,两个操作数符号相同而运算
结果的符号与之相反时 OV=1,反之,OV=0。

51单片机,定时器寄存器溢出中断

5.符号扩展问题

8bit --> 16bit --->32bit


3.计算机的码制

ASCII码

UART串口通讯   以16进制发送数据

欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。

MSP430初学:MSP430单片机C语言基础(二)相关推荐

  1. MSP430初学:MSP430单片机C语言基础(一)

    前言 1.<MSP430单片机应用基础与实践>(华中科技大学出版社)-第1章-MSP430单片机C语言基础 2.B站视频视频总结 3.自己 (本文章作备忘录使用) 内容(概要) 1.1标识 ...

  2. 梳理嵌入式单片机C语言基础

    梳理一下嵌入式单片机C语言基础,数据类型.关键字.指针这些. 文章目录 一.数据类型 二.C语言关键字 1.static 2.const 3.extern 4.volatile 5.typedef 6 ...

  3. [GO语言基础] 二.编译运行、语法规范、注释转义及API标准库知识普及

    作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了什么是GO语言 ...

  4. c语言中void delay0.5(),第5章补充 单片机C语言基础.ppt

    第5章补充 单片机C语言基础.ppt 2.中断函数举例 例4-16 本例程序电路图可参考图4-1.下面的程序的功能是:对外部中断1中断次数计数,并送P0口显示. #include unsigned c ...

  5. 单片机c语言0x 1x,科目1单片机C语言基础.doc

    科目1单片机C语言基础 二进制:数字电路中的两种电平特性决定了它 0 0 6 110 1 17111 2 1081000 3 1191001 4 100101010 5 10111 1011 十六进制 ...

  6. JavaScript语言基础(二)

    一.之前介绍了JavaScript语言基础的关键字.标识符.常用的数据类型,文章地址:JavaScript语言基础(一) ,下面来介绍JavaScript基础中的常量和变量. 1.常量:当程序运行时, ...

  7. 单片机c语言基础知识,c语言必背100代码有哪些?

    我记得刚开始接触编程的时候,觉得太难了. 也很好奇,写代码的那些人也太厉害了吧?全是英文的,他们的英文水平一定很好吧? 他们是怎么记住这么多代码格式的?而且错了一个标点符号,整个程序都会有影响. 一个 ...

  8. c语言中通过指针引用数组,C语言基础(二)

    指针引用数组 C语言规定:如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素. 引入指针变量后,就可以用两种方法来访问数组元素了.如果p的初值为&a[0],则: p+i和 ...

  9. 手把手教你学51单片机-C语言基础

    二进制.十进制和十六进制 对于二进制来说,8 位二进制我们称之为一个字节. 我们在进行 C 语言编程的时候,我们只写十进制和十六进制,那么不带 0x 的就 是十进制,带了 0x 符号的就是十六进制. ...

最新文章

  1. 谈谈C#中类成员的执行顺序.
  2. 浏览器tab关闭事件_Python--使用Pyqt5实现简易浏览器(最新版本测试过)
  3. cocos2d-x 错误异常抛出捕获和崩溃拦截
  4. 机器人水库涵洞检测_管渠清淤机器人、管道浑水探测机器人……想不到吧?哈排水集团竟然是“科研达人”...
  5. 阿尔法平台C语言编程题答案
  6. 如何网络监测其他计算机关闭445端口,关闭445端口方法 包括XP win7和win10系统(超详细)...
  7. PhoneGap——Accelerometer【加速计】
  8. 分组和聚合函数的组合使用实操
  9. 全网功能最全的无水印短视频提取工具
  10. 2021-2027全球与中国全闪存存储市场现状及未来发展趋势
  11. 微信小程序之swiper无限轮播实现效果
  12. 亚马逊测评自养号环境系统的介绍和用法
  13. 计算机核心论文投稿的一点碎碎念
  14. 概率统计_协方差的传播 Covariance Propagation
  15. Linux内存管理(八):paging_init
  16. RSA 2017:勒索软件成热点 收了赎金还撕票
  17. EasyAR尝鲜系列教程之视频播放功能的实现
  18. Chrome 升级成最新v33 造成开发上面诸多不便,赶紧回滚v32
  19. 生活篇之工资和年终奖的纳税
  20. 热膨胀探头本特利24765-01-01

热门文章

  1. 喜欢的歌——时间煮雨(郁可唯)
  2. win10 wifi图标不见了 解决办法
  3. 9、验签失败可能的原因有哪些?
  4. 2018南京大学计算机系夏令营上机考试(一)
  5. ベルベット / 贝姐
  6. 【JVM】JVM系列
  7. 关于软件注册问题的讨论
  8. 计算机之间通信原理---CSDN观后感
  9. 国产化系统改造实践(未完)
  10. 很受打动的一篇文章,很幽默让人想看完。