This is useful to have as a script, I wrote one back in 2011. It uses the 3d cursor but restores its original position.
A link to this script is here (includes all addon boilerplate) Once installed the script can be run from 3d view > space bar > Origin Move to Selected
This is the juicy bit:
def execute(self, context):
saved_location = bpy.context.scene.cursor_location.copy()
bpy.ops.view3d.snap_cursor_to_selected()
bpy.ops.object.mode_set(mode = 'OBJECT')
bpy.ops.object.origin_set(type='ORIGIN_CURSOR')
bpy.context.scene.cursor_location = saved_location
bpy.ops.object.mode_set(mode = 'EDIT')
return {'FINISHED'}
To bind this to a key combo:
User Preferences > Input > 3D View > 3D View (Global) > New.
- Then fill in the text field with
object.origin_to_selected and Blender will name the short-cut correctly. Then pick your short-cut keys:

More work up front, but convenient when used hourly.
Ctrl + Alt + Shift + Cdoesn't work since 2.8; choose it from the menu (no shortcut). Another option is to move the origin directly as mentioned in Robert's answer. – legends2k Jun 01 '20 at 21:45