首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
rt-thread 中的rt_kprintf 原码
2024-10-31
【学】第一节 rt-thread的rt_kprintf功能的实现
@2019-06-20 [主题] 拿到一个stm32f407新板,使用rt-thread源码中的bsp中的stm32f407-discovery工程,操作串口外设实现rt_kprintf功能 [问题] 源码bsp中的工程一般都用usart1实现了rt_kprintf功能,所以直接编译烧写,但就是串口助手无数据 [分析] 调试代码,查看usart1相关寄存器都是正常的,就考虑输出脚是不是重映射了,因为使用的是HAL库,就查看了文件<stm32f4xx_hal_msp.c>中串口配置函数HAL_U
C中进制, 原码, 反码与补码的简单用法
/** * 二进制 binary 如: 1010 * 八进制 octal 如: 070 * 十六进制 hexadecimal 如: 0x7f * * 1Byte = 8bits * 1WORD = 2Bytes = 16bits "字" * 2WORD = 4Bytes = 32bits = 1DWORD "双字" * * 原码, 反码和补码 * 二进制原码中, 第一位代表符号位, 1为负(negative), 0为正(positive) * 正数: 原码 = 反码
[转]C语言的int最值问题,以及原码反码及补码
以2字节为例来说: 对于无符号的数值(原码反码及补码都一样),最大值为1111 1111 1111 1111=65535 最小值为0000 0000 0000 0000=0 对于有符号的来说较为复杂: 二进制原码最大为0111 1111 1111 1111=215-1=32767 二进制原码最小为1111 1111 1111 1111=-(215-1)=-32767正0和负0:0000000000000000=1000000000000000=0所以,二进制原码表示时,范
JAVA的枚举基本操作,对原码反码补码的理解及为运算的深入理解,浮点数计算的误差分析
①深入浅出的了解枚举类型 先看一段代码: enum Size{SMALL,MEDIUM,LARGE}; public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t); //false //是原始数据类型吗? System.out.println(s.getClass().isP
java第二周的学习知识4(对原码,补码,反码和java中浮点数计算不准确的总结)
原码:一个正数,转换为二进制位就是这个正数的原码.负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码. 但是原码有几个缺点,零分两种 +0 和 -0 .很奇怪是吧!还有,在进行不同符号的加法运算或者同符号的减法运算的时候,不能直接判断出结果的正负.你需要将两个值的绝对值进行比较,然后进行加减操作 ,最后符号位由绝对值大的决定.于是反码就产生了.反码:正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反. 解决了加减运算的问题,但还是有正负零之分,然后就到补码了补码:正数的补码与
原码、补码,反码以及JAVA中数值采用哪种码表示
原码.补码,反码以及JAVA中数值采用哪种码表示 1.原码定义(摘自百度百科):一种计算机中对数字的二进制定点表示方法,原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1, 举例:2->00000010,-2->10000010,+0->00000000,-0->10000000; 小数的原码:对十进制小数乘以2得到的整数部分和小数部分,整数部分即是相应的二进制数码,再用2乘小数部分,结果再取整数部分,如此反复,直到小数部分为0或达到精度为止.第一
原码,补码,反码的概念及Java中使用那种存储方式
原码,补码,反码的概念及Java中使用那种存储方式: 原码:原码表示法是机器数的一种简单的表示法.其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示 补码:机器数的补码可由原码得到.如果机器数是正数,则该机器数的补码与原码一样:如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的 反码:机器数的反码可由原码得到.如果机器数是正数,则该机器数的反码与原码一样:如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的Java中使用补
原码,反码,补码,及Java中数字表示方法
原码:原码是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 如:如果是八位二进制1即用00000001表示,-1即用10000001表示. 反码:正数的反码就是其本身,负数的反码是在其原码的基础上,符号位不变,其他各个位取反. 补码:正数的补码就是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1). 利用原码计算:1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010
c语言中类型转换与赋值运算符、算术运算符、关系运算符、逻辑运算符。原码、反码、补码。小解。
类型转换 自动转换 小范围的类型能够自动转换成大范围的类型.short->int->long->float->double 强制类型转换 (类型名)变量或数值 #include <stdio.h> #include <stdlib.h> // standared 标准 // input output 输入/输出 // header 头 .h头文件 int main() // 返回int,如果是void表示没有返回 { // 大类型就相当于把一瓶酒中的水,倒入
C语言:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。-使字符串的前导*号不得多于n个,若多余n个,则删除多余的*号,
//fun函数:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动. #include <stdio.h> void fun( char *p ) { ; max=p[i]; ) { if( max<p[i] ) { max=p[i]; /**********found**********/ q = p + i;//先找到最大值,记录最大值的位置. } i++; } /**********found**********/ while(q&g
二进制原码、反码、补码以及Java中的<< 和 >> 和 >>> 详细分析
1.计算机二进制系统中最小单位bit 在计算机二进制系统中: bit (位) :数据存储的最小单元. 简记为b,也称为比特(bit),每个二进制数字0或1就是一个位(bit),其中,每 8bit = 1 byte(字节): 再回顾Java 中的数据类型,如int数据类型 = 4个byte(字节),而1 byte(字节) = 8 bit(位):也就我们常说的int = 32位(说白了,在二进制系统中是以bit 作为数据存储单元的).如下 2.有符号数和无符号数 有符号数和无符号数简单的说就是分别对
曹工力荐:调试 jdk 中 rt.jar 包部分的源码(可自由增加注释,修改代码并debug)
背景 大家知道,jdk安装的目录下,一般会有个src.zip包,这个包基本对应了rt.jar这个包.rt.jar这个包里面,就放了jdk中,jdk采用java实现的那部分类库代码,比如java.lang包下面的,什么ArrayList之类的. 如何才能调试这部分代码呢,这里的调试,是说,能够修改源代码.加注释.直接debug. 步骤 经过一番思考和探索后,可以这样: 解压src.zip包,因为解压后,里面有8000多个文件,比较大,我们也不需要调试所有的代码,我就挑了这个包下面的代码: 上面看到
2_C语言中的数据类型 (三)原码、反码、补码
1.1 原码 将最高位做为符号位(0代表正,1代表负),其余各位代表数值本身的绝对值 +7的原码是00000111 -7的原码是10000111 +0的原码是00000000 -0的原码是10000000 1.2 反码 一个数如果值为正,那么反码和原码相同 一个数如果为负,那么符号位为1,其他各位与原码相反 +7的反码00000111 -7的反码11111000 -0的反码11111111 1.3 补码 原码和反码都不利于计算机的运算,如:原码表示的7和-7相
并发编程学习笔记(4)----jdk5中提供的原子类及Lock使用及原理
(1)jdk中原子类的使用: jdk5中提供了很多原子类,它会使变量的操作变成原子性的. 原子性:原子性指的是一个操作是不可中断的,即使是在多个线程一起操作的情况下,一个操作一旦开始,就不会被其他线程干扰. jdk中的rt.jar中提供给了很多的原子性操作类.它们是位于java.util.concurrent.atomic包中,如图: 由图可以看到,jdk提供了很多基础类型的原子类操作,已经对象(AomicReference)原子操作类,数组的原子操作类,已经对象属性院子操作类(AtomicRe
【转】 Android 基于google Zxing实现对手机中的二维码进行扫描--不错
原文网址:http://blog.csdn.net/xiaanming/article/details/14450809 转载请注明出处:http://blog.csdn.net/xiaanming/article/details/14450809 我之前写了一篇关于google Zxing扫描二维码的文章,效果是仿微信的效果,有兴趣的朋友可以去看看基于google Zxing实现二维码.条形码扫描,仿微信二维码扫描效果,有时候我们有这样子的需求,需要扫描手机中有二维码的的图片,所以今天实现的就
STM32 + RT Thread OS 学习笔记[二]
串口通讯例程 通过上面的练习,对STM32项目开发有了一个直观印象,接下来尝试对串口RS232进行操作. 1. 目标需求: 开机打开串口1,侦听上位机(使用电脑串口测试软件)发送的信息,然后原样输送到串口1. 2. 创建项目 a) 禁用Finsh和console b) 默认情况下,项目文件包含了finsh,它使用COM1来通讯,另外,console输出(rt_kprintf)也使用了COM1.因此,在运行scons命令生成项目文件之前,修改rtconfig.h,禁用这两项.(下图
Android 基于google Zxing实现对手机中的二维码进行扫描
转载请注明出处:http://blog.csdn.net/xiaanming/article/details/14450809 有时候我们有这样子的需求,需要扫描手机中有二维码的的图片,所以今天实现的就是对手机中的二维码图片进行扫描,我这里是直接在原来的工程上面加的这个功能,下面就简单介绍下这个小功能的实现,首先我在界面上加了一个ImageButton,图片还是用的微信的图片,下面是扫描界面的title <?xml version="1.0" encoding="utf
STM32 + RT Thread OS 串口通讯
1. 创建项目 a) 禁用Finsh和console b) 默认情况下,项目文件包含了finsh,它使用COM1来通讯,另外,console输出(rt_kprintf)也使用了COM1.因此,在运行scons命令生成项目文件之前,修改rtconfig.h,禁用这两项.(下图L65, L70) c) 生成项目文件 运行scons --target=mdk4 –s 打开生成的项目文件,可以看到,文件组finsh已经不再被包含进来了. d) 创建echo.c 新建一个C文件echo
Java多线程2:Thread中的实例方法
Thread类中的方法调用方式: 学习Thread类中的方法是学习多线程的第一步.在学习多线程之前特别提出一点,调用Thread中的方法的时候,在线程类中,有两种方式,一定要理解这两种方式的区别: 1.this.XXX() 这种调用方式表示的线程是线程实例本身 2.Thread.currentThread.XXX()或Thread.XXX() 上面两种写法是一样的意思.这种调用方式表示的线程是正在执行Thread.currentThread.XXX()所在代码块的线程 当然,这么说,肯定有人不理
进制,原码VS补码
进制 十,八,十六进制=>二进制 十进制=>二进制:辗转相除取余,10除2商5余0,5除2商2余1,2除2商1余0,1除2商0余1,So,10d=1010b 八进制=>二进制:每1位八进制数字对应3位二进制数字,So,012=001_010b 十六进制=>二进制:每1位十六进制数字对应4位二进制数字,So,0x2f=0010_1111b 二进制=>十,八,十六进制 二进制=>十进制:乘方作和,So, 1010b=2^3+2^1=10d 二进制=>八进制:每3位二进
C语言 原码--反码--补码
//原码,反码,补码 #include<stdio.h> #include<stdlib.h> //数值的表示方法——原码.反码和补码 //原码:最高位为符号位,其余各位为数值本身的绝对值 //反码: //正数:反码与原码相同 //负数:符号位为1,其余位对原码取反 //补码: //正数:原码.反码.补码相同 //负数:最高位为1,其余位为原码取反,再对整个数加1 // // //在计算机系统中,数值一律用补码来表示(存储). //主要原因:使用补码,可以将符号位和其它位统一处理:
热门专题
MethodInterceptor类怎么引入 cglib
postgre获取近一年时间序列
R语言生存资料方差膨胀因子
安装kali提示无法挂载安装介质
webstom本地代码添加git仓库
xshell 如何退出查看进程
ACER SWIFT3 触摸板不能用
usb抓包分析详解 wireshark
java 把一句话写入一个新的word文档
zradminnetcore 教程
json cpp append 数组
audit配置 redis
option标签动态获得数据
delphi oep特征
unityAR多图片识别怎么排放
java在指定位置盖章
php接收axios
openwrt无法ping通外网
ORACLE 存储过程insert 提示权限不足
mysql新增用户和权限 binlog访问