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;//打开VCC
P5OUT =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语言基础(一)
下一篇:MSP430开发环境配置
推荐阅读最新更新时间:2024-11-12 17:27
设计资源 培训 开发板 精华推荐
- 使用 Infineon Technologies AG 的 TLE6240GP 的参考设计
- TDS水质测试笔原理图和PCB和BOM
- 流水灯贴片焊接训练
- SPT10_AirTouch_5Key_20190715
- 使用 ON Semiconductor 的 CS3972 的参考设计
- DC2143A-A,使用 2x LTM4677 降压模块和数字 PSM 的演示板,4.5V = VIN = 20V,Vout = 0.5V 至 1.8V @ 72A
- HSC-ADC-EVALA-DC,使用 DT72V283、16 位、133 MSPS 高速模数转换器的评估板
- 使用 Sanken Electric Co., Ltd 的 STR-A6063HD 的参考设计
- LTC3631EMS8E 正负转换器的典型应用电路
- LT1317CMS8 低噪声 33V 变容二极管偏置电源的典型应用电路