Перевод чисел из 10-ной в 16-ную систему

Oksymoron
Offline
Зарегистрирован: 28.01.2017

Доброе время суток!!! Народ помогите с переводом из 10-ной в 16-ную систему и обратно. Допустим имеется код

int sensorPin = A0;    
int ledPin = 13;      
int sensorValue = 0;  
void setup() {
  
  pinMode(ledPin, OUTPUT);
}

void loop() {
  sensorValue = analogRead(sensorPin);
  digitalWrite(ledPin, HIGH);
  delay(sensorValue);
  digitalWrite(ledPin, LOW);
  delay(sensorValue);
}

Как мне перевести переменную sensorPin в 16-ю систему и записать ее как новую переменную для выполнения дальнейших действий. За ранее спасибо большое!

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Хмм... и вроде пятница только послезавтра?

Oksymoron
Offline
Зарегистрирован: 28.01.2017

Не понял Ваш намек.

rkit
Offline
Зарегистрирован: 23.11.2016

Никак. Бред пишешь.

Oksymoron
Offline
Зарегистрирован: 28.01.2017

rkit пишет:

Никак. Бред пишешь.

а если вот так имеем массив для передачи

  canMsg1.can_id  = 0x0F6;
  canMsg1.can_dlc = 8;
  canMsg1.data[0] = 0x17;
  canMsg1.data[1] = 0x87;
  canMsg1.data[2] = 0x32;
  canMsg1.data[3] = 0xFA;
  canMsg1.data[4] = 0x26;
  canMsg1.data[5] = 0x8E;
  canMsg1.data[6] = 0xBE;
  canMsg1.data[7] = 0x86;

данные передаются в 16-ой системе(так как это протокол J1939), мне надо, допустим, вместо фиксированного значения data[0] подставить значение переменной(а их я могу только получить в 10-й системе) 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Да-а. Проблема! Институты бьются! Академики кандидатские защищают! А все бестолку! Решай. Родина будет тебе благодарна. Бюст поставят, возможно. Но только посмертно!

rkit
Offline
Зарегистрирован: 23.11.2016

Как данные передаются к твоим переменным никакого отношения не имеет.

b707
Offline
Зарегистрирован: 26.05.2017

Oksymoron пишет:

а если вот так имеем массив для передачи

  canMsg1.can_id  = 0x0F6;
  canMsg1.can_dlc = 8;
  canMsg1.data[0] = 0x17;
 ...
  canMsg1.data[7] = 0x86;

данные передаются в 16-ой системе(так как это протокол J1939), мне надо, допустим, вместо фиксированного значения data[0] подставить значение переменной(а их я могу только получить в 10-й системе) 

открою страшную тайну - между записью

canMsg1.data[0] = 0x17;

и

canMsg1.data[0] = 23;   //  23 = 0x17 hex

для протокола КАН нет ни малейшей разницы.

Так что не сомневайся, пиши десятичные.

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

b707 пишет:

открою страшную тайну - между записью

canMsg1.data[0] = 0x17;

и

canMsg1.data[0] = 23;   //  23 = 0x17 hex

для протокола КАН нет ни малейшей разницы.

Более того, вот это 

canMsg1.data[0] = 0b00010111;  

Тоже прокатит с тем же результатом )))

Green
Offline
Зарегистрирован: 01.10.2015

v258 пишет:

canMsg1.data[0] = 0b00010111;  


Нестандарт. Так правильнее:

canMsg1.data[0] = B00010111;

 

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Green пишет:

v258 пишет:

canMsg1.data[0] = 0b00010111;  


Нестандарт. Так правильнее:

canMsg1.data[0] = B00010111;

И так тоже прокатит с тем же результатом )))

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

нихера не знаем, зато надо сразу в машину какую нибудь приблуду вкорячить.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

По науке надо делить нацело и с остатком на основание новой системы счисления !

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Не надо. Ему (ТС-у) не вывод на экран нужен. Он просто разницу между числом и цифрой не понимает ))

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018
BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Komandir сегодня жжётт ))))

Oksymoron
Offline
Зарегистрирован: 28.01.2017

Спасибо