1. 程式人生 > >c中把short賦值給char陣列

c中把short賦值給char陣列

網上很多方法都是使用sprintf來做的,但我要的結果不是這樣的,我只是要int的二進位制放到char裡就完事了,sprintf好像不是這樣,如果是的話,請留言糾正。話不多說,直接上原始碼:

char angle[10];
short s = 1000;
angle[1] = (char)s;
angle[0] = s >> 8;
printf("%x,%x\n", angle[0], angle[1]); 

這個是原理性的問題,首先short強轉char的時候取的是低8位,所以賦值到陣列第二位,之後就是移位,把高8位移到低8位就好了。如果有人去除錯看到整數是這樣的,但負數就不是這樣的,負數在計算機是用補碼存放的,如果忘記補碼了就百度一下,這樣輸出的16進位制數就是對的了,補碼就是除去符號位外取反再加1。

相關推薦

cshortchar陣列

網上很多方法都是使用sprintf來做的,但我要的結果不是這樣的,我只是要int的二進位制放到char裡就完事了,sprintf好像不是這樣,如果是的話,請留言糾正。話不多說,直接上原始碼:char angle[10]; short s = 1000; angle[1] =

C/C++字串常量為什麼可以char*?

1、對於C來說,字串常量是由字元構成的陣列,比如“hello”型別為char[6],所以在C中可以直接字串常量賦值給char*。既然C中字串常量是是不是改變字串常量的值呢?答案是否定的,雖然可以編譯通過(會有警告),但是執行時會出錯。因為字串常量位於只讀儲存區不允許寫操作。實驗如下: #incl

keras讀取訓練好的模型引數並引數其它模型

介紹 本博文中的程式碼,實現的是載入訓練好的模型model_halcon_resenet.h5,並把該模型的引數賦值給兩個不同的新的model。 函式式模型 官網上給出的呼叫一個訓練好模型,並輸出任意層的feature。 model = Model(inputs=base_mod

編寫程式由從標準輸入裝置讀入的元素資料建立一個int型vector物件,然後動態建立一個與該vector物件大小一致的陣列vector物件的所有元素陣列

先建立一個含有若干int型的vector容器,變數名為ivec。用標準輸入來初始化這個容器的每一個元素。 再動態建立一個int型陣列,利用迭代器來遍歷容器,並利用容器來初始化動態建立的陣列 最後的cout<<*(p-10)是返回到了陣列的最開始的位置,p指標又重新指向了第一個元素

C/C++的連續

#include<iostream> using namespace std; int main() {int a=2,b=2;a+=a*=a/=a+=3;b+=b*=b-=b*=3;co

C語言指標陣列

  如果把各種語言做個冷兵器類比的話,C語言一定是刀客的最佳工具.入門很簡單,但是要是能把它熟練運用,那就是頂尖級別的高手了. 用了那麼多年的C語言,發現自己還是僅僅處於熟練的操作工.今天遇到了一個bug,就是和指標的賦值有關係.請看程式碼: 1 #include <stdio.h>

C語言中,通過指標結構體的變數

typedef struct Mech_Para// { int32_tP001_TipBoxX; int32_tP002_TipBoxY; int32_tP003_TipBoxZ; int32_tP004_IntervalX; int32_tP005_IntervalY;

awk陣列shell陣列

方法1,通過eval Shell程式碼   #!/bin/bash  ipstr="192.168.1.152,192.168.1.153";  #declare -a arr;  eval $(echo $ipstr | awk '{split($0, filearray, ",");for(i in 

C/C++,為什麼字串可以字元指標變數,單引號和雙引號的區別

本文是通過幾篇轉帖的文章整理而成的: http://www.slyar.com/blog/c-quotation-marks.html http://www.cnblogs.com/KingOfFreedom/archive/2012/12/07/2807223.html

C# Hashtable另一個Hashtable時

元素 全部 nbsp htable table賦值 tab tor 操作 enume c#中想將一個hashtable的元素全部給另一個hashbale時, 使用叠代一個一個元素賦值 如: ammus.Clear(); IDictionaryEnume

C# 大數組小數組,小數組大數組

賦值 ray min 數組 c# class clas arr [] string[] arraymax = new string[5]; string[] arraymin = new string[3]; string[

saddle每一個屬性到WebPlate的同名屬性

一個 this getprop jstring 賦值 () sad ring property //將saddle中每一個屬性賦值給到WebPlate中的同名屬性 foreach (PropertyInfo info in saddle.GetType().Get

Mysql查詢結果只有一條的情況下變量

lec div class date() where sql logs pan rdate 1 set @n=(SELECT count(day) from log where day=CURDATE()); 2 SELECT @n 把結果中count(day)的值賦值

[原創]Javaword的table

rds span 如果 分享圖片 local end 區域 必須 tab 一、準備工作:   下載PageOffice for Java:http://www.zhuozhengsoft.com/dowm/ 二、 實現方法:   要調用PageOffice操作Word中的

SQL SERVER 存儲過程SELECT 返回如何變量

資料 開心 d+ server 問題 一個表 procedure insert 結果 今天在處理一個問題時,使用到一個存儲過程,是用於更新並獲取最新ID的。在使用過程中,需要獲取到這個ID並賦值給變量,結果用EXEC @ID = 存儲過程的方式獲取失敗了。具體情況如下:

effective c++條款11:在operator=處理自我

int a = 3; a = a; 這就是自我賦值,你可能覺得這個自我賦值不痛不癢,造成不了什麼後果,那麼下面這個呢? #include <iostream> using namespace std; class MyClass { public: int *p; publ

從Vuex取出陣列新的陣列,新陣列push時報錯的解決方法

如下所示: ? 1 Uncaught Error: [vuex] Do not mutat

從Vuex取出數組新的數組,新數組push時報錯的解決方法

syn 調度系統 scrip vip tor ood 教育 java初學者 str 如下所示: ? 1 Uncaught Error: [vuex] Do not mutate vuex store state outside mutation hand

SqlServer儲存過程中將Exec的執行結果變數輸出

背景: 遇到這樣一種情況:動態向儲存過程中傳入表名和表的某些屬性(這裡用到的是主鍵ID),然後利用這兩個變數查出一條資料的某些欄位值,然後再利用這些值進行邏輯運算(自己的邏輯),最後將結果輸出。話不多說,直接上圖,看是否是你想要的結果: 說明:【區域1為要用來測試的表】【 區域2 為表中資料】【區域3

三元表示式 result='gt' if 1>3 else 'lt' 如果條件為真,if前面的變數,否則else後面的變數。

https://docs.python.org/3/tutorial/datastructures.html?highlight=list%20comprehension#list-comprehensions 以上是官方文件。5.1.3. List Comprehensio