kindring 1 рік тому
батько
коміт
54f65d0525
5 змінених файлів з 107 додано та 1 видалено
  1. 10 0
      C与C++/基本知识.md
  2. 4 0
      css/test.css
  3. 2 1
      js/copy.js
  4. 57 0
      js/进制转换/test.js
  5. 34 0
      js/进制转换/time.js

+ 10 - 0
C与C++/基本知识.md

@@ -108,3 +108,13 @@ int main()
 }
 ```
 
+### 函数参数
+#### `#d` 函数参数是 `地址`
+函数的参数是一个`地址`,函数内部可以通过这个地址来修改外部的变量
+#### `#e` 函数参数是 `地址`
+```c
+void fun(int *p)
+{
+    *p=20;
+}
+```

+ 4 - 0
css/test.css

@@ -0,0 +1,4 @@
+.div{
+/* 绕着圆心旋转渐变,红橙黄绿 */
+background: linear-gradient(90deg, red, orange, yellow, green);
+}

+ 2 - 1
js/copy.js

@@ -146,4 +146,5 @@ function copyText (content){
             reject(error);
         }
     })
-}
+}
+

+ 57 - 0
js/进制转换/test.js

@@ -0,0 +1,57 @@
+const time = require('./time.js');
+function hexStrToBitStr(str){
+    // 移除0x 以及空格
+    str = str.replace(/0x/g,'').replace(/\s/g,'');
+    // 转换为二进制
+    return parseInt(str,16).toString(2);
+}
+
+function parseRtpHeader(hexStr){
+    let bitStr = hexStrToBitStr(hexStr);
+    let version = parseInt(bitStr.substr(0,2),2);
+    let padding = bitStr.substr(2,1);
+    let extension = bitStr.substr(3,1);
+    let csrcCount = bitStr.substr(4,4);
+    let marker = bitStr.substr(8,1);
+    let payloadType = parseInt(bitStr.substr(9,7),2);
+    let sequenceNumber = parseInt(bitStr.substr(16,16),2);
+    let timestamp = parseInt(bitStr.substr(32,32),2);
+    // 格式化时间戳
+    let _time = time.timestr(timestamp )
+    let ssrc = bitStr.substr(64,32);
+    let csrc = bitStr.substr(96,32);
+    return {
+        version,
+        padding,
+        extension,
+        csrcCount,
+        marker,
+        payloadType,
+        sequenceNumber,
+        timestamp,
+        ssrc,
+        csrc,
+        time: _time
+    }
+}
+console.log(parseInt(hexStrToBitStr('00 ac'),2));
+console.log(parseInt(hexStrToBitStr('00 5b'),2));
+console.log(parseInt(hexStrToBitStr('00 5d'),2));
+console.log(parseInt(hexStrToBitStr('01 e2'),2));
+console.log(parseInt(hexStrToBitStr('00 5a'),2));
+console.log(parseInt(hexStrToBitStr('00 5a'),2));
+console.log(parseInt(hexStrToBitStr('00 5a'),2));
+
+console.log(parseRtpHeader('80 08 00 04 d4 91 5e 08 07 27 11 e8'));
+console.log(parseRtpHeader('80 08 00 05 d4 91 5e a8 07 27 11 e8'));
+console.log(parseRtpHeader('80 08 00 06 d4 91 5f 48 07 27 11 e8'));
+
+console.log(parseRtpHeader('80 08 00 15 00 41 ad c0 00 00 27 66'));
+console.log(parseRtpHeader('80 08 00 17 00 41 af 00 00 00 27 66'));
+console.log(parseRtpHeader('80 08 00 18 00 41 af a0 00 00 27 66'));
+
+// console.log(parseRtpHeader('00 04 d4 91 5e 08 07 27 11 e8 d6 d4'));
+// console.log(parseRtpHeader('00 05 d4 91 5e a8 07 27 11 e8 d5 57'));
+// console.log(parseRtpHeader('00 06 d4 91 5f 48 07 27 11 e8 54 d4'));
+
+

+ 34 - 0
js/进制转换/time.js

@@ -0,0 +1,34 @@
+// 时间戳转格式化时间
+function timestr(time, format = 'yyyy-MM-dd HH:mm:ss') {
+    var t = new Date(time);
+    var tf = function (i) {
+        return (i < 10 ? '0' : '') + i
+    };
+    return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) {
+        switch (a) {
+            case 'yyyy':
+                return tf(t.getFullYear());
+                break;
+            case 'MM':
+                return tf(t.getMonth() + 1);
+                break;
+            case 'mm':
+                return tf(t.getMinutes());
+                break;
+            case 'dd':
+                return tf(t.getDate());
+                break;
+            case 'HH':
+                return tf(t.getHours());
+                break;
+            case 'ss':
+                return tf(t.getSeconds());
+                break;
+
+        }
+    })
+}
+
+module.exports = {
+    timestr
+}